我有一个50分的数据集,我把它聚集成三个集群并绘制它们。如何标记这些集群..
symbs= {'r+','g.','bv','m*','ko'};
figure;
hold on
for i = 1: length(I)
plot(X(I(i),1),X(I(i),2),symbs{i},'MarkerSize',20)
plot(X(C==i,1),X(C==i,2),symbs{i})
end
我只是想为那些绘制的群集提供标签
答案 0 :(得分:2)
方法1:创建legend
symbs= {'r+','g.','bv','m*','ko'};
figure;
hold on
for i = 1: length(I)
plot(X(I(i),1),X(I(i),2),symbs{i},'MarkerSize',20)
plot(X(C==i,1),X(C==i,2),symbs{i})
end
labels = {'Cluster 1','Cluster 2','Cluster 3','Cluster 4','Cluster 5'};
legend(labels);
由于您正在使用每个符号绘制两个图形对象,您将(可能)找到它
这看起来不太正确:图例中每个符号将重复两次而不是一次。要解决此问题,请存储其中一组对象的handles,并将句柄用作legend
的第一个参数。
for i = 1: length(I)
h(i) = plot(X(I(i),1),X(I(i),2),symbs{i},'MarkerSize',20);
plot(X(C==i,1),X(C==i,2),symbs{i})
end
labels = {'Cluster 1','Cluster 2','Cluster 3','Cluster 4','Cluster 5'};
legend(h, labels(1:length(h)) );
方法2:使用annotation
Annotation允许您执行绘制箭头或将包含识别信息的文本框放在绘图上的操作。请参阅选项的链接和示例。