我在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
答案 0 :(得分:0)
使用16种颜色来区分数据点是一个坏主意。喜欢的颜色会混合在一起。我建议使用不同的标记+颜色。四个标记,如'*'
,'x'
,'+'
,'.'
等,每种标记有四种颜色。然后你可以使用legend('Class 1','Class 2', Class n')
。它应该显示特定颜色的每个标记。如果最好在没有循环的情况下写出每一行,并在每个标记/颜色/类之后添加%注释来描述它是什么,这可能就是这种情况,以防您以后必须回到此代码。这不是你要求的解决方案,但这就是我要做的。
答案 1 :(得分:0)
您可以绘制单个类的所有数据点以及逻辑索引。
假设您已在某处定义了类,请在class_number
中说明,其长度与data
相同,条目范围为1
到16
,{{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