带有颜色矩阵的 Matlab errorbar

Matlab's errorbar with matrix of colors

是否可以将函数 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 循环(并创建一个函数来重复使用),但我希望有更简单的方法。

Errorbar Series Properties 的文档中所述,颜色 属性 只能是 RGB 三元组、颜色字符串或 'none'。因此,在调用 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)');