在Matlab中绘制多行 - 在每次迭代时使颜色更加强烈?

时间:2016-02-22 07:47:56

标签: matlab

我正在绘制一个函数的图形,它在每次迭代时会略微变化,因为它会收敛到它的极限值...如何在每次迭代时使线条的颜色变得更加强烈?强烈的意思是线条保持相同的颜色,但在每次迭代时变得更饱和或更暗?

2 个答案:

答案 0 :(得分:2)

如果您通过一次plot来电绘制所有线路,请设置axes (search for ColorOrder)'ColorOrder'属性。

如果您正在使用循环,那么您可以执行以下操作:

baseColour = rgb2hsv([1,0,0]); %// Get the HSV values for pure red, but choose any colour
hue = baseColour(1);
saturation = baseColour(2);
for k = 1:n
    %// do stuff
    lineColour = hsv2rgb([hue, saturation, 1-(k-1)/(n-1)]);
    %plot(..., 'Color', lineColour)
end

这应该将你的线条从没有亮度(实际值),即黑色变为全光,但保持相同的色调和饱和度,从而产生相当自然的色彩分级。如果您的数据是有序的,那么这是最有意义的,即用户应该知道形成亮线的数据的某些属性的值大于来自较暗线的数据的属性值。

答案 1 :(得分:1)

您应该创建自己的色彩图,对于给定的颜色,您可以通过插入rgb值来设置强度,同时保持比例 - 一个示例更清楚地解释了我的意思。绿色:

cmap = [zeros(128,1), linspace(0,1,128)', zeros(128,1)];
imagesc(1:128)
colormap(cmap)