从单元格数组绘图

时间:2012-03-07 17:47:13

标签: matlab plot

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”表示。我在绘制这些信息方面遇到了麻烦。我想为每对位置画一个线图,但不同的线图有不同的标记。此外,我想插入一个显示这对位置的图例,如{1,1}和{1,2}所示。

我希望我能清楚表达自己的意图。

1 个答案:

答案 0 :(得分:2)

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

Example

您可以使用以下代码:

% 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