散点图中的pcolor matlab

时间:2013-04-04 14:27:43

标签: matlab colors plot

我有一个大矩阵DAT(50000+,42)。我在x和y轴上绘制了2行此矩阵,并希望绘图点的颜色因单独行的值而变化。有人可以提供建议吗? pcolor对我不起作用,因为"颜色数据输入必须是一个矩阵"错误。 TIA

X = DAT(:,21);

Y = DAT(:,22);

Z = DAT(:,28);

plot(X,Y,'*');

hold on

pcolor(X,Y,Z);

hold off

2 个答案:

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