Matlab的错误栏与颜色矩阵

时间:2015-01-29 14:10:05

标签: matlab colors matlab-figure

是否可以将函数errorbar与矩阵一起使用(因此它会绘制带有误差条的几个图)并为其提供一个用于绘图的颜色矩阵?

我还没有能够完成这项工作。有些尝试是:

x=1:10;
x=[x',x',x',x'];
y=rand(10,4);
e=0.1*rand(10,4);

% automatic colors work:
errorbar(x,y,e);

% custom ones don't (c is a 4 x 3 matrix of colors)
errorbar(x,y,e,c);
errorbar(x,y,e,c');
errorbar(x,y,e,'Color',c);
errorbar(x,y,e,'Color',c');

解决方案是使用for循环(并创建一个函数来重复使用)但我希望有更简单的东西。

1 个答案:

答案 0 :(得分:2)

Errorbar Series Properties文档中所述,颜色属性只能是RGB三元组,颜色字符串或“无”。因此,在调用errorbar函数期间似乎无法获得所需的行为。

无论如何,你可以在不使用for循环或函数的情况下解决这个问题:

% Number of curves / colors
n = 4;

% Generate data and colors
x = repmat(1:10, [n 1])';
y = rand(10,n);
e = 0.1*rand(10,n);

c = jet(n);

% Plot
h = errorbar(x,y,e);

% Assign new colors
arrayfun(@(x,y) set(x, 'Color', y{:}), h, num2cell(c, 2)');