Вопрос по matlab – Как изменить цвет точек кластера в Matlab

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;

Я должен установить другой цвет для разных элементов кластера, например, красный для первого кластера, синий для второго и так далее.

Как я могу это сделать?

Вы могли бы рассмотреть возможность использованияscatter like in this SO question, В частности, вы можете изменить тип маркера программно. Chris A.
Вы не делаете никаких графиков, так где вы хотите установить цвета? Ansari

Ваш Ответ

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

enter image description here

Теперь просто приведите ваши данные в ту же форму, что и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

Используйте эту ссылку наColorSpec из комментария Петрикора, чтобы узнать обо всех различных комбинациях символов / цветов, которые вы можете определить.

Error: User Rate Limit Exceededmathworks.com/help/techdoc/ref/colorspec.html
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded user1416605

Похожие вопросы