我想让每个子图共享相同的颜色条比例。我知道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;

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

最佳答案

您所看到的是caxis的正确行为。设置caxis([0 0.01])时,所有大于0.01的值都被分配为红色(或棕色,无论您如何称呼)。在z1中,除最后一个点外,所有其他点都大于0.01,因此都标记为红色。如果您尝试caxis([0 0.1]),您会看到右侧的图全为蓝色。两个子图的动态范围相差一个数量级,因此,您将无法使用相同的坐标轴限制来充分地代表这两个图。
您是否尝试过使用对数色标?请尝试以下方法:

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

上面的图看起来更好吗?

关于matlab - Matlab中用于散点图的公共(public)色条,具有少量数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5940982/

10-12 17:49