如何在matlab中改变聚类点的颜色

时间:2012-05-25 05:41:01

标签: matlab

我正在实施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;

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

我该怎么做?

1 个答案:

答案 0 :(得分: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

enter image description here

现在只需将您的数据设置为与cluster1cluster 2相同的格式(群集1和群集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上使用此链接,了解您可以定义的所有符号/颜色组合。