我找到了一个链接,里面的人最终解决了这个问题。他使用了以下代码:
t = linspace(0,1,lineCount)';
s = 1/2 + zeros(lineCount,1);
v = 0.8*ones(lineCount,1);
lineColors = colormap(squeeze(hsv2rgb(t,s,v)))
ax=gca
ax.ColorOrder = lineColors;
假设每个矩阵都有相同的行数,那么这应该适用于您。如果它们不是,则我有一种感觉您将不得不循环并单独绘制每条线,使用上面的
lineColors
指定
plot
的
'Color'
linespec属性的RBG三元组。因此,您可以使用以下函数:
function h = plot_colors(X, lineCount, varargin)
t = linspace(0,1,lineCount)';
s = 1/2 + zeros(lineCount,1);
v = 0.8*ones(lineCount,1);
lineColors = colormap(squeeze(hsv2rgb(t,s,v)));
for row = 1:size(X,1)
h = plot(X(row, :), 'Color', lineColors(row,:), varargin{:});
hold on;
end
end
其中
lineCount
是你的
x
矩阵中最多行数的数字。
x
矩阵绘制的线条数量都相同吗? - Danhold on
代替hold all
...然后所有的plot
命令都将从颜色顺序的开头开始。 - Hoki