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