回答:
matplotlib
Latexドキュメントで適切な数値を使用しようとしている場合は、EPSとして保存します。具体的には、画像をプロットするコマンドを実行した後、次のようなことを試してください。
plt.savefig('destination_path.eps', format='eps')
私はepsファイルが最もよく機能することを発見しました。dpi
パラメーターは、それらがドキュメントで本当に見栄えをよくするものです。
更新:
保存する前にFigureの向きを指定するには、plt.savefig
呼び出しの前に次を呼び出しますが、プロットの作成後(名前がのAxesを使用してプロットしたと仮定ax
):
ax.view_init(elev=elevation_angle, azim=azimuthal_angle)
ここelevation_angle
で(度)数(垂直z軸から下)の極角を指定し、azimuthal_angle
指定(Z軸まわり)の方位角。
最初に画像をプロットしてから回転させ、ウィンドウの下部に向かって実際のプロットのすぐ下に角度の現在の値が表示されるのを確認することで、これらの値を決定するのが最も簡単であることがわかりました。x、y、zの位置はデフォルトで表示されますが、画像をクリックしてドラッグして回転すると、2つの角度に置き換わります。
format='eps'
必要に応じて省略できます。この場合、形式はファイル名から推測されます。
結果を追加するためだけに、matplotlibも使用します。
.epsはすべてのテキストを太字にし、透明度を削除しました。.svgを使用すると、実際にはグラフのように見える高解像度の画像が得られました。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# Do the plot code
fig.savefig('myimage.svg', format='svg', dpi=1200)
画像が何であるかに応じて、多くの科学雑誌が1200/600/300 dpiの画像を必要とするため、私は1200 dpiを使用しました。目的のdpiに変換し、GiMPまたはInkscapeでフォーマットします。
編集:.svgはベクトルグラフィックスであり、「無限の解像度」を持っているので、dpiは明らかに問題ではありません。
imshow(..)
図のどこかで使用する場合、DPIは非常に重要です。これらのビットマップは、SVGに埋め込まれるときにラスタライズされます。デフォルトのDPIを使用すると、結果は画面に表示されるものよりもさらに悪くなり、出版物には明らかに不適切です。
さて、私はspencerlyon2の答えが機能しているのを見つけましたが、誰かがその1行で何をすべきかわからない場合は、私はこのようにする必要がありました:
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)
matplotlibの代わりにseabornプロットを使用している場合は、次のように.png画像を保存できます。
あなたが持っているとしましょうmatrix
オブジェクト(パンダまたはnumpyのいずれか)、そしてあなたがヒートマップをしたいです:
import seaborn as sb
image = sb.heatmap(matrix) # this gets you the heatmap
image.figure.savefig("C:/Your/Path/ ... /your_image.png") # this saves it
このコードは、Seabornの最新バージョンと互換性があります。stackoverflowに関する他のコードは、以前のバージョンでのみ機能しました。
私が好きな別の方法はこれです。次の画像のサイズを次のように設定しました。
plt.subplots(figsize=(15,15))
その後、コンソールに出力をプロットし、そこから必要な場所にコピーして貼り付けます。(seabornはmatplotlibの上に構築されているため、問題はありません。)