2013-04-04 3 views
1

У меня есть большая матрица DAT(50000+,42). Я рисую 2 строки этой матрицы по осям x и y и хочу, чтобы сюжетные точки менялись по цвету из-за значения отдельной строки. Может кто-нибудь посоветовать? pcolor не будет работать для меня из-за ошибки «входной сигнал цвета должен быть матрицей». ТИАpcolor in plot plot matlab

X = DAT(:,21); 

Y = DAT(:,22); 

Z = DAT(:,28); 

plot(X,Y,'*'); 

hold on 

pcolor(X,Y,Z); 

hold off 
+0

Если у вас есть доступ к панели инструментов статистики затем «gscatter» будет окрашивать по групп: http://www.mathworks.com/help/stats/gscatter.html – Dan

ответ

2

Вы могли бы рассмотреть вопрос об использовании scatter()

% random sample data 
DAT = randn(30,42); 
X = DAT(:,21); 
Y = DAT(:,22); 
Z = DAT(:,28); 

scatter(X,Y,50,Z); % x,y,size,color -> size can also be a vector 
% scatter(X,Y,50,Z,'*'); % to also change the marker type 

enter image description here

1

Вы можете выбрать цвета из массива, генерируемый colormap так:

DAT = randn(30,42); 
X = DAT(:,21); 
Y = DAT(:,22); 
Z = DAT(:,28); 

[dummy ID]=sort(Z); 
colors=colormap(jet(length(Z))); 

figure 
for i=1:length(Z) 
plot(X(i),Y(i),'*','Color',colors(ID(i),:)); 
hold on 
end 

Единственный вопросс этой техникой, что вы не можете сделать участки с миллионами точек из-за зацикленное черчение, но в остальном он работает как шарм:

enter image description here