1

さまざまなサイズのmatlabサブプロットを提供するGUIを作成し、サブプロットを一緒にスクイーズする一般的な方法を探しています。サブ軸は垂直方向の間隔で機能しますが、水平方向の間隔には影響しません。

それらを一緒に絞る最も簡単な方法は何ですか? 次のコードをforループで使用して生成された出力図の1つの例

 subaxis (1+ceil(max(zindex)/5),5,5+i, 'Padding', 0, 'Margin', 0,'SpacingHoriz',0.0001,'SpacingVert',0.009);
4

1 に答える 1

2

あなたのフィギュアの寸法はあなたが持っているプロットの数とはかなり異なっているようです。図形のサイズを定義する場合、副軸が最適に機能します。プロットの数に基づいてアスペクト比を選択する必要があります。

この例では、13 x 5のサブプロットがありますが、図のアスペクト比は7:13のようになっています。したがって、垂直方向のプロットは互いに接近していますが、水平方向の空白が多くあります。

プロットする前に、次のように図を定義してみてください。

nRows=13;
nCols=5;
PlotWidth=3;  %This is your Plot width in cm. 
FigW=nCols*FigWidth;
FigH=nRows*FigWidth;   %Note: I'm assuming the plots are square
Figure1=figure(1);clf;
set(Figure1,'PaperUnits','centimeters',...
      'PaperSize',[FigW FigH],...
      'PaperPosition',[0,0,FigW,FigH],...
      'Units','centimeters','Position',[1,9,FigW,FigH]);

フィギュアの間隔が良く見えるかどうかを確認してください。cmの代わりに「インチ」を使用したい場合は、いくつかの注意が必要です。また、用紙プロットに余白がありません(用紙サイズと用紙位置を定義すると、エクスポートに役立ちます)。マージンが必要な場合は、次のような方法を試してください。

Mgn=1;
set(Figure1,'PaperUnits','centimeters',...
      'PaperSize',[FigW+2*Mgn FigH+2*Mgn],...
      'PaperPosition',[Mgn,Mgn,FigW,FigH],...
      'Units','centimeters','Position',[1,9,FigW,FigH]);

次に、matlabのprintコマンドを使用して、選択した形式にエクスポートできます。

于 2013-06-04T15:45:58.640 に答える