Matlab中散点图的常用颜色条,数字较小

时间:2011-05-09 18:35:49

标签: matlab plot scatter-plot colorbar

我想让每个子图共享相同的颜色条比例。我知道caxis适用于大于1的整数,但使用caxis的值似乎存在问题,例如0.001。

 x = 0:1:10;
 y = 0:1:10; 
 z1 = .1:-.01:0;
 z2 = .01:-.001:0;

figure;
 subplot(1,2,1);
 scatter(x,y,10,z1); colorbar;
 subplot(1,2,2);
 scatter(x,y,10,z2);  colorbar;

ex1

现在我想让散点子图具有共同的颜色条比例。我尝试使用caxis,但是我没有得到预期的结果。 左轴无法正确缩放,因为它们都是棕色。如何纠正?

 ca = [0 .01];
 figure;
 subplot(1,2,1);
 scatter(x,y,10,z1); caxis(ca); colorbar;
 subplot(1,2,2);
 scatter(x,y,10,z2);  caxis(ca); colorbar;

enter image description here

1 个答案:

答案 0 :(得分:8)

您所看到的是caxis正确行为。设置caxis([0 0.01])时,所有大于0.01的值都会被指定为红色(或棕色,无论你怎么称呼它)。在z1中,除最后一点之外的所有内容都大于0.01,因此它们都标记为红色。如果你试过caxis([0 0.1]),你会看到右边的图是全蓝色的。你的两个子图的动态范围是一个数量级,因此,你将无法充分表示同样的caxis限制。

您是否尝试过使用对数色标?请尝试以下方法:

subplot(1,2,1);
scatter(x,y,10,log10(z1)); colorbar;
caxis([-3 -1])

subplot(1,2,2);
scatter(x,y,10,log10(z2));  colorbar;
caxis([-3 -1])

enter image description here

上面的情节看起来更好吗?