3

ここで、Matlabの図形からスペースを絞り出すことに関する多くのQ&Aを見ました。ただし、アスペクトが固定されている可能性があるため、スペースを絞りたいと思います。つまり、アスペクトが固定されている場合に、図の印刷に適切な用紙サイズを選択します。

かなり頻繁にDEM/map / imageを使用するため、を使用しますaxis image。高解像度の画像を作成したい場合は、次のようにします。

set(gcf,'PaperUnits','inches','PaperPosition',[0 0 4 3])
print('-dpng','-r300','somefile.png')

MatlabKBで説明されているように。

ここでの問題は、両側に白/背景の縞模様が残らない適切な用紙サイズを指定できるように、適切なアスペクトを決定することです。

どうやら、アスペクト比が0.5のマップ(たとえば1000x2000セル)があり、それを4 "x3"の用紙に印刷すると、側面に背景の縞模様ができます。1.5 "x3"の紙+軸とラベルなどが好きなので、これは非常に面倒です。今、私は手動で用紙サイズを調整する必要があります。

普遍的な解決策が欲しいので、これは不便です。たとえば、固定アスペクトのない4"x3"を占めると予想されるファイルにプロットを印刷する場合があります。または、3Dフィギュアを印刷したい場合があります。私はdaspectとpbaspectを知っていますが、それが現在どのように描かれているのかをどうやって知ることができますか?

おそらく、 DataAspectRatioMode(?)プロパティがmanualに設定されているかどうかを考慮しながら、現在の2Dアスペクトを導出get(gca,'Position')し、それを最大許容サイズ(たとえば、4 "x3")にスケーリングできます。それは先に進む方法ですか、それとももっと良い方法がありますか?

4

1 に答える 1

0

あなたの問題を正確に理解しているかどうかは正確にはわかりませんが、次のコマンドを使用して、図のサイズに正確にサイズ変更された pdf 画像を作成しました。これを 2D と 3D の両方のフィギュアに使用しました。「ハンドル」変数は、単に Figure ハンドルです。

set(handle,'Units','inches');
set(handle,'PaperUnits','Inches','PaperPositionMode','auto');
P = get(handle,'Position');
set(handle,'PaperSize', [P(3),P(4)]);
于 2012-07-13T14:49:51.910 に答える