web-dev-qa-db-ja.com

サブプロットとその周辺のギャップを取り除く方法

1つの図に2つのサブプロット(2x1)をプロットしています。 2つのサブプロット間のすべての間隔を削除し、上部のサブプロットのxlableティックとxlabelティックも削除したいと思います。また、サブプロットの外側のすべての間隔を削除しようとしています。やってみます

set(gca, 'LooseInset', get(gca,'TightInset'))

しかし、それは機能しません。現在、これらの余白とラベルを手動で削除しています。60の数字を処理する必要があり、これらすべてを手動で実行するには時間がかかります。それを行うためのより良い方法はありますか?ありがとう。

サブタイトプロットも試してみます。すべてのマージンを減らすのに役立ちますが、xlabelとylabelもカットされます

margins=[0 0];
t = 0:0.01:10;
y1 = sin(t);
y2 = cos(t);
h1 = subtightplot(2,1,1, margins);
plot(t, y1);
ystr = {'sin(x)','(dimensionless)'}
hy1 = ylabel(ystr);
set(gca, 'fontsize', 14);
set(hy1, 'fontsize', 14);
set(gca, 'XTickLabel', [],'XTick',[])

h2 = subtightplot(2,1,2,margins);
plot(t, y2, 'r-o');
hx2=xlabel('frequency');
hy2=ylabel('amplitude');
set(gca, 'fontsize', 14);
set(hx2, 'fontsize', 14);
set(hy2, 'fontsize', 14);

Subplot_tightも試してみましたが、さらに悪いです

10
user1285419

fEXから subplot_tight または subtightplot を使用できます。すべてのx-tickとラベルを削除するには、次を使用します。

set(gca, 'XTickLabel', [],'XTick',[])

適切なサブプロットで...

編集:

ラベルなどを含めたいので、positionaxesハンドルを使用して含めることができます。

t = 0:0.01:10;
y1 = sin(t);
y2 = cos(t);


left= 0.15;
bottom1=0.5;
bottom2=0.05;
width=0.8;
height=0.45; % which is also bottom1-bottom2

axes('Position',[left bottom1 width height]);
plot(t, y1);
ystr = {'sin(x)','(dimensionless)'}
hy1 = ylabel(ystr);
set(gca, 'fontsize', 14);
set(hy1, 'fontsize', 14);
set(gca, 'XTickLabel', [],'XTick',[])


axes('Position',[left bottom2 width height])
plot(t, y2, 'r-o');
hx2=xlabel('frequency');
hy2=ylabel('amplitude');
set(gca, 'fontsize', 14);
set(hx2, 'fontsize', 14);
set(hy2, 'fontsize', 14);

enter image description here

7
bla