2013-04-24 22 views
54

非常に高品質で保存するにはどうすればよいですか?非常に高品質の画像をpythonで保存する

つまり、pdfファイルに保存されたオブジェクトをズームし続けると、ぼやけはありませんか?

また、保存にはどのようなモードが最適でしょうか?

png,eps?または他の何か?私はpdfを実行することはできません。Latexmkコンパイルで混乱するような隠れた番号があるためです。

答えて

77

matplotlibを使用していて、ラテックス文書で良い数字を取得しようとしている場合は、epsとして保存してください。具体的には、画像を描画するためのコマンドを実行した後、このような何かを試してみてください。

plt.savefig('destination_path.eps', format='eps', dpi=1000) 

私は、EPSファイルが最適に動作することを発見したとdpiパラメータが本当に彼らは文書が似合う作るものです。

UPDATE:

単にplt.savefigコールする前に、以下を呼び出しますが、プロットを作成した後(あなたが名前axで軸を使用してプロットしていると仮定した場合)保存する前に、図の向きを指定するには

ax.view_init(elev=elevation_angle, azim=azimuthal_angle) 

ここで、elevation_angleは、極角(垂直z軸から下側)を指定する数値(度)であり、azimuthal_angleは方位角(z軸周り)を指定します。

まず、画像をプロットして回転させ、角度の現在の値を見て、実際のプロットのすぐ下のウィンドウの下部に表示することで、これらの値を決定するのが最も簡単です。 x、y、zの位置はデフォルトで表示されますが、画像をクリック+ドラッグ+回転すると2つの角度に置き換えられます。

+0

spencerlon2 @私がしたい場合はどのような保存する前に図の向きを変更しますか? – dustin

+0

更新されたレスポンスを参照してください。 – spencerlyon2

31

matplotlibを使用して私の結果を追加するだけです。

.epsはすべてのテキストを太字にして透明度を削除しました。 .svgは実際に私のグラフのように見える高解像度の写真を私にくれました。科学雑誌の多くは1200年の画像を必要とするので、600// 300dpiのをイメージのあるものに応じて

import matplotlib.pyplot as plt 
fig, ax = plt.subplots() 
# Do the plot code 
fig.savefig('myimage.svg', format='svg', dpi=1200) 

私は1200dpiでの使用しました。 GiMPまたはInkscapeで目的のdpiとフォーマットに変換します。

編集:明らかに.svgはベクトルグラフィックで「無限の解像度」を持っているので、dpiは関係ありません。

+0

DPIは、図のどこかで 'imshow(..)'を使うと大変重要です。これらのビットマップは、SVGに埋め込まれるとラスタライズされます。デフォルトのDPIでは、結果は画面上に表示されているものよりも悪く、出版物には適していません。 –

0

さて、私は、しかし、場合には、誰もが自分自身は、私はそれをこのようにしなければならなかったという1行、で何をすべきかを知らない見つけるだろう、spencerlyon2の答えの作業が見つかりました:

beingsaved = plt.figure() 

# some scatters 
plt.scatter(X_1_x, X_1_y) 
plt.scatter(X_2_x, X_2_y) 

beingsaved.savefig('destination_path.eps', format='eps', dpi=1000) 
関連する問題