1

我有一个大矩阵 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
4

2 回答 2

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

在此处输入图像描述

于 2013-04-04T14:59:38.017 回答
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

这种技术的唯一问题是,由于循环绘图,您无法绘制具有数百万个点的绘图,但除此之外它就像一个魅力:

在此处输入图像描述

于 2013-04-04T15:47:37.587 回答