研究生matlab从一种特定颜色到另一种颜色

时间:2016-07-25 11:17:39

标签: matlab plot colors

我刚刚开始学习Matlab,我想知道是否有一种简单的方法来改变散点图的颜色,例如,从黄色到红色。我正在考虑使用命令

scatter(x,y,100,c)

其中c将被定义为RGB三元组

t=linspace(0,1,100);
c='y' .* (1-t) + 'r' .* t;

现在这样做了,但它并没有真正改变从黄色到红色的颜色。如果有一种更简单的方法,甚至一些自动执行此功能的自定义功能,那就太棒了。谢谢。

1 个答案:

答案 0 :(得分:1)

颜色比那更难!从颜色到另一种颜色有无限可能的路径,因为颜色空间是3D体积。在所有可能的颜色空间中,用于处理新颜色或颜色创建的最差颜色空间是RGB!

这背后的原因是因为无法知道[123, 213, 42]的颜色是什么,通常它不会是[123, 213, 0][123, 213, 255]之间的颜色。

您的案例的最佳选择是HSV色彩空间。第一个值Hue包含所有颜色信息,而另外两个是颜色的饱和度和值或强度。只需阅读你所知道的第一个你正在谈论的颜色值。

HSV中的

,红色为H=0,黄色为H=60度,或者uint8为H=60*255/360,双倍为H=60/255。选择对您有益的S和V值,例如S = 255,V = 255以具有强烈的颜色。然后:

H=linspace(0,60/255,100);
HSV=[H;ones(size(H));ones(size(H))]; 
rgb=hsv2rgb(HSV);

这将为您提供颜色的颜色图。然后,您需要在scatter

中正确分配它们