2016-05-14 14 views
1

我需要绘制一个图,其中每个点(x,y,z)都根据其值指定颜色。我如何在Matlab中做到这一点? 我曾尝试过: scatter3(x,y,z,c) 但我有颜色困难。如何为图中的点分配颜色

考虑这个例子: (x_i,y_i,z_i)的值为v_i。我希望最大值点为红色,最小值点为蓝色。

+0

的[此](可能的复制http://stackoverflow.com/questions/34603566/how-can-i-conditionally-colour-points-on-a-scatter-plot-in-matlab/34603715 #34603715)的问题。检查一个,如果没有回答你,发布你的代码,以便我们实际上可以看到什么是失败。 –

回答

1

使用此代码。我假设你需要基于z的颜色。这就是为什么scatter3中有第二个z。您可以根据将显示哪种颜色将其替换为另一个矩阵。

s=50; %size of marker 
scatter3(x, y, z, s ,z,'filled'); 
colormap(jet); 
colorbar; 

如果您需要颜色变化蓝白红色。然后使用这个代码。

s=50; %size of marker 
scatter3(x, y, z, s ,z,'filled'); 
m = size(get(gcf,'colormap'),1)/2; 
steps = (0:m-1)'/max(m-1,1); 
cm_red_blue = [ steps steps ones(m,1);ones(m,1) flipud(steps) flipud(steps) ]; 
colormap(cm_red_blue); 
colorbar; 
1

你必须使用它,如:

scatter3(x, y, z, s, c) 

其中s是标记的大小。

如果你像你一样使用它,Matlab会认为颜色是一个大小值,并且很可能返回一个错误。