我正在实施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;
我必须为不同的集群成员设置不同的颜色,例如第一组为红色,第二组为蓝色,等等。
我该怎么做?
答案 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
现在只需将您的数据设置为与cluster1
和cluster 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上使用此链接,了解您可以定义的所有符号/颜色组合。