如何在matlab中为集群分配标签

时间:2012-05-28 06:36:37

标签: matlab plot

我有一个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

我只是想为那些绘制的群集提供标签

1 个答案:

答案 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允许您执行绘制箭头或将包含识别信息的文本框放在绘图上的操作。请参阅选项的链接和示例。