【问题标题】:plotting from a cell array从元胞数组绘制
【发布时间】:2012-03-07 17:47:13
【问题描述】:
clear all
FieldName = {'loc1','loc2','loc3','loc4'};
data = rand(8760,4);

dnew = mat2cell(data,eomday(2011, (1:12))*24,size(data,2));
k = cellfun(@(x)num2cell(nonzeros(tril(corrcoef(x),-1))),dnew','un',0);
out = [FieldName(nchoosek(1:numel(FieldName),2)) [k{:}]];

此示例演示了来自 4 个站点的每对位置之间的月平均相关性,并以“out”表示。我在绘制这些信息时遇到了麻烦。我想为每对位置绘制一个线图,但不同的线图有不同的标记。另外,我想插入一个显示这对位置的图例,如 out{1,1} 和 out{1,2} 所示。

我希望我已经清楚地表达了我的意图。

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    如果你对这样的事情感兴趣,

    您可以使用以下代码:

    % Plot data
    data = out(:,3:end);
    p = plot(cell2mat(data)');
    
    % Generate a cell containing the display names
    display_names = cellfun( @(a,b) sprintf('%s - %s', a, b), ...
        out(:,1), out(:,2), 'UniformOutput', false);
    legend(display_names);
    
    % Set markers
    markers = {'+', '>', '<', '^', 'v', '*', 'hexagram'};
    for i=1:(min(length(markers), size(out,1)))
        set(p(i),'Marker',markers{i});
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多