5

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

 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;

前一

现在我想让散点图有一个共同的颜色条比例。我尝试使用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;

在此处输入图像描述

4

1 回答 1

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])

在此处输入图像描述

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

于 2011-05-09T19:58:00.513 回答