带有颜色矩阵的 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)');
是否可以将函数 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)');