使用不同颜色绘制循环的Matlab图例

时间:2016-02-05 13:13:37

标签: matlab loops plot colors legend

我在matlab中有一个代码,我在其中绘制了几个2d点,属于16个类,所以我使用了16种不同的颜色。有没有简单的方法可以使用表示每种颜色的类名的图例?

代码看起来像这样:

for i=1:length(data) 
    color = class_color(i);
    plot(data(i,1),data(i,2),'*','Color',color);
    hold on;
end

2 个答案:

答案 0 :(得分:0)

使用16种颜色来区分数据点是一个坏主意。喜欢的颜色会混合在一起。我建议使用不同的标记+颜色。四个标记,如'*''x''+''.'等,每种标记有四种颜色。然后你可以使用legend('Class 1','Class 2', Class n')。它应该显示特定颜色的每个标记。如果最好在没有循环的情况下写出每一行,并在每个标记/颜色/类之后添加%注释来描述它是什么,这可能就是这种情况,以防您以后必须回到此代码。这不是你要求的解决方案,但这就是我要做的。

答案 1 :(得分:0)

您可以绘制单个类的所有数据点以及逻辑索引。

假设您已在某处定义了类,请在class_number中说明,其长度与data相同,条目范围为116,{{1 },一个长度为16的单元格数组,颜色对应于每个类:然后

c_colors

(未经测试)。

然后,您可以将类的名称存储在单元格数组中,并在其上调用for jj = 1:16 mask = (class_number==jj); plot(data(mask,1),data(mask,2),'*','Color',c_colors{jj}); hold on end hold off

legend