2012-05-28 57 views
-1

我已经设置了50点点的数据和我聚成三组和情节them.How我们可以标记这些集群..如何分配标签集群MATLAB

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

为什么这个问题downvoted? –

+1

@EitanT:不是我低调的人,但我可以看到它如何被视为“低质量”;例如,OP从未解释变量“C”和“I”包含什么,并且期望读者已经阅读了他/她最近的一系列问题...... – Amro

+1

@Amro我同意这个问题不是最清楚的,但它可以通过一些编辑来改进。为了解决这个问题,为什么对新用户如此苛刻,而不是留下建设性的评论呢? –

回答

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

注解让你不喜欢的东西包含识别信息到您的地块绘制箭头或地方文本框。查看选项的链接和示例。