1

私は、ファイルを取得し、それらをプロットし、pdf(レターサイズ)を吐き出す、一般的にうまく実行されているプログラムを持っています。注釈を使用して、3 つのサブプロットのセットの上にタイトルを付け、ファイル情報と日付を含むフッターとして使用します。タイトルをページの上部に配置し、余白から余白まで埋めて中央に配置したいと思います。

プログラムを実行するには、「バッチ」モードと「インタラクティブ」モードの 2 つの方法があります。「インタラクティブ」モードでは、簡単なfigure()コマンドで図を作成します。「バッチ」モードのときは、 で図を作成しますfigure('visible','off')。注釈を作成するためのコマンドは次のとおりです。

annotation(obj.hFigure(f),'textbox',[0 0.9 1 0.1],...
    'String',title,...
    'HorizontalAlignment','center',...
    'FontSize',18,...
    'LineStyle','none',...
    'FitBoxToText','off');

ここで、「obj.hFigure(f)」は、現在処理中の Figure の単なるハンドルです。ご覧のとおり、図を図の上部近くに配置し、テキストがボックスの下部からはみ出すようにします (ボックスが大きい場合)。

私の問題は、上記の注釈の余白にあります。バッチ モード (図は表示されません) では、テキストの両側に 10% ほどの余白ができ、レイアウトが台無しになります。インタラクティブ モード (図が表示される) では、余白が表示されません。テキストは端から端まで正しく流れます。

問題を次のように絞り込みました: バッチ モードでの ps 印刷に対して正しい応答を得ることができますfigure('visible','on')

propertyeditor(gcf);
plotbrowser(gcf);

各図がプロットされた後。これにより、プログラムの実行時間が約 2 倍になります (大したことではありません)。しかし、私が理解していないのは、これらの 2 つのコマンドが何を行うのか、drawnowまたはrefresh何を達成しないのかということです!

4

1 に答える 1

0

あなたの特定のケースについてはわかりませんが、過去にこの種の問題に遭遇したとき、図のサイズを次のように明示的に設定することで大きな成功を収めました。

set(gcf, 'Position', [100  100  300 300])

次に、印刷/保存する前に PaperPositionMode を auto に設定します。これにより、印刷された図が画面に表示されているものと同じサイズになるように見えます。

set(gcf, 'PaperPositionMode','auto')
于 2012-10-15T13:47:11.293 に答える