Matlab绘制多种标记颜色

时间:2015-02-09 04:43:40

标签: matlab colors marker

我使用非常大的数据生成了许多(数千)图。我需要一种非常简单的方法来使我的标记具有不同的颜色,但每个元素都需要保持它的颜色。在我的主要 for 循环中,我有:

for i = 1:finaltime plot(pos(i,:), track(i,:), 'o', 'MarkerSize', 9) ;

其中“pos”表示元素的位置(有1000个),“track”表示元素所在的轨道号(有4个)。因此,对于矩阵“pos”中的每个标记(对应于每列),我需要1000种不同的颜色,其中 finaltime 大小为1000。对于生成的每个图形(它们将有 finaltime ),我希望1000个元素保持其颜色。例如,“pos”中的第一个元素在整个模拟过程中是蓝色的。第二个元素是红色等。

2 个答案:

答案 0 :(得分:3)

我的一个建议是生成一个1000个元素的调色板,然后对于您拥有的每组观察,只需将标记设置为此调色板中的一种颜色即可。

如果我理解正确,您有一个矩阵,postrack的每对列都有唯一的颜色。基本上,postrack的每一行都有1000个点,每个点应分配不同的颜色。对于您绘制的每一行,您需要确保所有行的颜色方案相同。如果是这种情况,那么您需要绘制列并相应地应用颜色图。

因此,做这样的事情:

c = jet(1000);
figure; hold on;
for idx = 1 : 1000
    plot(pos(:,idx), track(:,idx), 'o', 'MarkerSize', 9, 'Color', c(idx,:));
end

jet是MATLAB命令,它生成默认为MATLAB(2014年之前)的颜色映射。

您可以浏览其他颜色地图,完整列表如下所示:

如果要使用其他颜色映射,只需使用名称并将其作为函数调用,并使用整数作为输入。此整数将在该颜色映射的范围内为您提供多种颜色。因此,假设您想要具有256色的hsv颜色贴图。你会这样做:

c = hsv(256);

答案 1 :(得分:0)

我发现答案实际上非常简单......如果我只使用scatter代替plotscatter函数可以采用一系列颜色,而{{1一次只能采用一种颜色。所以我只是将代码更改为:

plot

其中scatter(pos(i,:), track(i,:), c ); 并指定颜色。谢谢!