figureを画像として保存

saveas

最も楽な方法は,saveasを使う方法.

saveas(gcf,'figname.png')

下の print のようにファイル形式を指定しなくとも名前で勝手に判断して保存してくれる.
ただし高解像度ではない.
またベクトル図の場合は事前に Figure のプロパティ Renderer を 'painters' にしておく必要がある.

print

解像度を指定したいのであれば,print を使う. figure ハンドルを引数で指定する(なければgcf)

print(gcf,'-djpeg','figname.jpg','-r600')

jpg(jpeg) 形式で保存する場合,'-djpg' ではいけない.'-djpeg' にする.
jpg や png では dpi を指定でき,-r600 の部分を -r200, -r300 等に変更することで解像度を調整できる.
600dpi の場合,legend のマーカーや線が見にくくなる.legend のマーカーは調節できないので結局 300dpi くらいがちょうど良い.

MATLAB 上で -r600 とするよりも,eps で保存し Imagemagick の convert などで変換した方が見栄えは良い.
eps 形式の場合,'-deps', '-deps2' はモノクロ,'-depsc', '-depsc2' は color で保存になることに注意.

patch, pcolor の FaceAlpha, EdgeAlpha などで透過度がついた図に対しては '-depsc' としても,ベクター画像にならないことに注意.
PostScript には透明さを表すものがないかららしい.
PDF 形式で,-painters をつけて保存したら大体はOK.

print(gcf,'-painters','-dpdf','figname.pdf');

非対応のフォントを軸ラベルやタイトル文字に埋め込むと出力がおかしな見栄えになる点にも注意.
このページを参照.

savefig

MATLAB 用の .fig ファイルで保存する.あとで見直して体裁を整えたい(と思う可能性がある)ものには使える.
.fig は MATLAB 以外のアプリケーションでは使えない.

savefig(figure_handle,'figname.fig'); %ハンドル(Figureオブジェクト)を指定して.figファイルとして保存
savefig('figname.fig'); % gcfを.figファイルとして保存


exportgraphics (R2020aから)

R2020a のバージョンから exportgraphics というのが出てきた.
print で必要な PaperPosition 等の設定をしなくても,PDF を適当にうまいこと保存してくれて便利.

exportgraphics(gcf, 'figname.pdf')

ベクトル図であることを明示する時は

exportgraphics(gcf, 'figname.pdf','ContentType','vector')



参考

MathWorks 公式のページ.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2021-04-07 (Wed) 01:30:02 (1114d)