グラフの図のサイズの設定


91

幅を広くし、高さを小さくしたいだけです。私はラスタープロットを行っていますが、この質問はすべてのMATLABに当てはまりますfigure。作成時に図を直接使用して手動でサイズを変更できますが、プログラムが適切なサイズでそれを吐き出すようにしたいと思います。

回答:


81

に設定できるプロパティfigureここで参照されます

次に、以下を使用できます。

figure_number = 1;
x      = 0;   % Screen position
y      = 0;   % Screen position
width  = 600; % Width of figure
height = 400; % Height of figure (by default in pixels)

figure(figure_number, 'Position', [x y width height]);

12
で定義された同じ寸法でFigureをどのように保存できますsetか?saveas(gcf, file, 'png')代わりにデフォルトの寸法を使用しています。
イシュトZachar

@IstvánZacharは、stackoverflow.com
Emil Lundberg、

64

ワンライナーとして書いてください:

figure('position', [0, 0, 200, 500])  % create new figure with specified size  

ここに画像の説明を入力してください


31
 figure (1)
 hFig = figure(1);
 set(gcf,'PaperPositionMode','auto')
 set(hFig, 'Position', [0 0 xwidth ywidth])
 plot(x,y)
 print -depsc2 correlation.eps;       % for saving in eps, look up options for saving as png or other formats you may need

これにより、指定した寸法で図が保存されます


8
「PaperPositionMode」の+1は、Figureを「印刷」(エクスポート)する必要があります。
Ali

1

私は次のシーケンスで良好な結果を得ることができました(最初にMatlabを2回実行します)。

h = gcf; % Current figure handle
set(h,'Resize','off');
set(h,'PaperPositionMode','manual');
set(h,'PaperPosition',[0 0 9 6]);
set(h,'PaperUnits','centimeters');
set(h,'PaperSize',[9 6]); % IEEE columnwidth = 9cm
set(h,'Position',[0 0 9 6]);
% xpos, ypos must be set
txlabel = text(xpos,ypos,'$$[\mathrm{min}]$$','Interpreter','latex','FontSize',9);

% Dump colored encapsulated PostScript
print('-depsc2','-loose', 'signals');

0

別のアプローチ。
上のfigure()呼び出しプロパティを指定するか、後にFigureハンドルのプロパティを変更h = figure()

これにより、正規化された単位に基づいて全画面の図が作成されます。
figure('units','normalized','outerposition',[0 0 1 1])

unitsプロパティは、インチ、センチメートル、ピクセル等に調整することができます

figure ドキュメントを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.