1

我正在实施 AP 聚类算法。我不知道如何为不同的聚类点分配不同的颜色。

我的代码段是:

    I=find(diag(E)>0) %  Find number of cluster head
    K=length(I); %cluster head
    fprintf('Number_of_clusters:''%d',length(I))
    [tmp c]=max(distance(:,I),[],2);
    c(I)=1:K ;              
    idx=I(c)
    for k=1:K
    ii=find(c==k)% cluster points
    end;

我必须为不同的集群成员设置不同的颜色,例如集群一的红色,第二个集群的蓝色等等。

我怎样才能做到这一点?

4

1 回答 1

4

下面是一个示例,说明如何用红点绘制一个集群,用绿色加号绘制一个集群:

n = 100;
cluster1 = randn([n,2]); % 100 2-D coordinates 
cluster2 = randn([n,2]); % 100 2-D coordinates 
hold on
plot(cluster1(:,1),cluster1(:,2),'r.'); %plotting cluster 1 pts
plot(cluster2(:,1),cluster2(:,2),'g+'); %plotting cluster 2 pts

在此处输入图像描述

cluster1现在只需将您的数据转换为与和(集群 1 和集群 2 中的点的矩阵)相同的形式cluster 2,然后您可以绘制它们。

假设您没有固定数量的集群。然后你可以这样做:

%Defines some order of colors/symbols
symbs = {'r.', 'g+','m*','b.','ko','y+'}; 

figure(1)
hold on
for i = 1:num_clusters,
   % Some code here to extract the coordinates in one particular cluster...
   plot(cluster(:,1),cluster(:,2),symbs{i});
end

使用 petrichor 评论中关于colorspec的此链接,了解您可以定义的所有不同符号/颜色组合。

于 2012-05-25T06:08:53.537 回答