MATLAB Language
Matlabでのサブプロットの色付けの制御
サーチ…
前書き
私はこれを複数回苦労していたので、ウェブは何をすべきかについてはっきりしていないので、私は自分のものをいくつか追加して、1つのカラーバーを持つサブプロットを作成する方法を説明しました。それに従ってスケーリングされます。
私は最新のMatlabを使ってこれをテストしましたが、古いバージョンで動作することは間違いありません。
備考
自分で解決する必要があるのは、カラーバーの位置付けだけです(表示したい場合)。これはあなたが持っているグラフの数とバーの向きに依存します。
位置とサイズは、x_start、y_start、x_width、y_widthの4つのパラメータを使用して定義されます。プロットは、通常、左下隅が(0,0)に対応し、右上が(1,1)に対応するように正規化された単位にスケーリングされます。
仕組み
これは、6つの3Dサブプロットを作成し、最後にそれぞれに表示される色を同期させるシンプルなコードです。
c_fin = [0,0];
[X,Y] = meshgrid(1:0.1:10,1:0.1:10);
figure; hold on;
for i = 1 : 6
Z(:,:,i) = i * (sin(X) + cos(Y));
ax(i) = subplot(3,2,i); hold on; grid on;
surf(X, Y, Z(:,:,i));
view(-26,30);
colormap('jet');
ca = caxis;
c_fin = [min(c_fin(1),ca(1)), max(c_fin(2),ca(2))];
end
%%you can stop here to see how it looks before we color-manipulate
c = colorbar('eastoutside');
c.Label.String = 'Units';
set(c, 'Position', [0.9, 0.11, 0.03, 0.815]); %%you may want to play with these values
pause(2); %%need this to allow the last image to resize itself before changing its axes
for i = 1 : 6
pos=get(ax(i), 'Position');
axes(ax(i));
set(ax(i), 'Position', [pos(1) pos(2) 0.85*pos(3) pos(4)]);
set(ax(i),'Clim', c_fin); %%this is where the magic happens
end
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow