Matplotlib(pylab内)を使用して図を表示しています。そして、それらを.jpg形式で保存したいと思います。 jpg拡張子を付けてsavefigコマンドを使用するだけで、次の結果が返されます。
ValueError: Format "jpg" is not supported.
Supported formats: emf, eps, pdf, png, ps, raw, rgba, svg, svgz.
これを実行する方法はありますか?
画像を「png」として保存し、python Imaging Library(PIL)を使用してこのファイルを「jpg」に変換できます。
import Image
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
オリジナル:
JPEG画像:
@neoの有用な回答と元の質問を明確にして更新するため。クリーンなソリューションは、 Pillow のインストールで構成されます。これは、Python Imaging Library(PIL)の更新バージョンです。これは、
pip install pillow
Pillowがインストールされると、標準のMatplotlibコマンド
import matplotlib.pyplot as plt
plt.plot([1, 2])
plt.savefig('image.jpg')
図をJPEGファイルに保存し、notValueErrorを生成します。
Matplotlib 2.0の時点で、@ amillerrhodesの回答に反して、JPEGファイルはサポートされていないようです。 Pillowパッケージを削除しても、サポートされていないファイルタイプに関するValueErrorが表示されます。
pip install pillow
そしてそれは動作します。
システムでmatplotlibを1.1.0に更新したところ、savefig
でjpgに保存できるようになりました。
pip
を使用してmatplotlib 1.1.0にアップグレードするには、次のコマンドを使用します。
pip install -U 'http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz/download'
EDIT(コメントに応答するため):
pylab
は、単一の名前空間に対応するmatplotlib.pyplotおよびnumpy名前空間(および他のいくつか)の単なる集約です。
私のシステムでは、pylab
はこれだけです:
from matplotlib.pylab import *
import matplotlib.pylab
__doc__ = matplotlib.pylab.__doc__
pylab
は、matplotlibインストールの別のネームスペースであることがわかります。したがって、pylab
またはmatplotlib.pyplot
でインポートするかどうかは関係ありません。
それでも問題が発生する場合は、macosxバックエンドがjpgへのプロットの保存をサポートしていないと推測します。別のバックエンドを使用してみてください。詳細については、 here を参照してください。
PILをインストールしている場合、matplotlibはjpgを直接かつ透過的に処理できます。あなたはそれを呼び出す必要はありません、それはそれ自体で行います。 Python PILが見つからない場合、エラーが発生します。