我需要绘制一个图,其中每个点(x,y,z)都根据其值指定颜色。我如何在Matlab中做到这一点? 我曾尝试过: scatter3(x,y,z,c) 但我有颜色困难。如何为图中的点分配颜色
考虑这个例子: (x_i,y_i,z_i)的值为v_i。我希望最大值点为红色,最小值点为蓝色。
我需要绘制一个图,其中每个点(x,y,z)都根据其值指定颜色。我如何在Matlab中做到这一点? 我曾尝试过: scatter3(x,y,z,c) 但我有颜色困难。如何为图中的点分配颜色
考虑这个例子: (x_i,y_i,z_i)的值为v_i。我希望最大值点为红色,最小值点为蓝色。
使用此代码。我假设你需要基于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;
你必须使用它,如:
scatter3(x, y, z, s, c)
其中s
是标记的大小。
如果你像你一样使用它,Matlab会认为颜色是一个大小值,并且很可能返回一个错误。
的[此](可能的复制http://stackoverflow.com/questions/34603566/how-can-i-conditionally-colour-points-on-a-scatter-plot-in-matlab/34603715 #34603715)的问题。检查一个,如果没有回答你,发布你的代码,以便我们实际上可以看到什么是失败。 –