假设我有一个1000x2 的数据集及其相应的1000x1标签。
我们可以将数据分成 10 个类(标签数组有 10 个唯一值,范围从 1 到 10)。
在 Matlab 中用 10 种不同颜色可视化这 10 个类的最短方法是什么?
我目前只用两个这样的类手动完成它:
class_1 = data(labels == 1,:);
class_2 = data(labels == 2,:);
plot(class_1(:,1),class_1(:,2),'*');
hold on;
plot(class_2(:,1),class_2(:,2),'o');
任何指针将不胜感激。
如果您没有为每个类定义颜色,MATLAB 将自动为每个新图更改颜色,但默认情况下只定义了 7 种颜色,因此对于具有 10 个图的情况,某些类将具有相同的颜色。
解决它的一种方法是在元胞数组中定义颜色和标记,然后在循环中进行绘图。这是您的class_1
蓝色星星和class_2
绿色圆圈示例:
classes = {class_1, class_2};
my_colors = {[0 0 1], [0 1 0]};
my_markers = {'*','o'};
figure(1), hold on
for i=1:length(classes)
plot(classes{i}(:,1),classes{i}(:,2),'Color', my_colors{i}, 'Marker', my_markers{i});
end
这可以轻松扩展到所有 10 个类,您可以轻松更改每个类的颜色和标记。
您可以做的另一件事是更改 MATLAB 具有的默认颜色数量,如果您不喜欢它们,也可以更改默认颜色。您可以在此处阅读:为什么绘图线的颜色不同?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句