5

各サブプロットで同じカラーバー スケールを共有したい。caxis1より大きい整数で機能することはわかって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;

ここに画像の説明を入力

4

1 に答える 1

8

あなたが見ているのは、 の正しい動作ですcaxis。を設定するcaxis([0 0.01])と、 より大きいすべての値に0.01赤 (または茶色、呼び名は何でも) が割り当てられます。ではz1、最後の点を除くすべてがより大きい0.01ため、すべて赤でマークされています。を試してみるとcaxis([0 0.1])、右側のプロットがすべて青色であることがわかります。2 つのサブプロットのダイナミック レンジは 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 に答える