2013年6月16日日曜日

[Python][matplotlib]インストール

Windows
  1. Numerical Python - Browse /NumPy/1.5.1 at SourceForge.net から numpy-1.5.1-win32-superpack-python2.7.exe をダウンロードしてインストールする
  2. matplotlib - Browse /matplotlib/matplotlib-1.0.1 at SourceForge.net から matplotlib-1.0.1.win32-py2.7.exe をダウンロードしてインストールする


Fedora
yum でインストール
# yum install numpy
# yum install python-matplotlib


動作確認
# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt

plt.plot([1,2,3,4],[1,4,9,18])
plt.ylabel('some numbers')
plot.show()
Fedora では問題なく動作したが、Windows の場合は以下のようなエラーが表示された。
> python test00.py
Traceback (most recent call last):
File "test00.py", line 2, in <module>
import matplotlib.pyplot as plt
File "C:\usr\Python27\lib\site-packages\matplotlib\pyplot.py", line 23, in <module>
from matplotlib.figure import Figure, figaspect
(略)
File "C:\usr\Python27\lib\site-packages\matplotlib\font_manager.py", line 214, in win32InstalledFonts
key, direc, any = _winreg.EnumValue( local, j)
MemoryError
これは matplotlib の backend (renderer) がデフォルトで tkagg backend を使うことになっているために発生している。agg backend に切り替えて動作させるとグラフ作成ができた。
# -*- coding:utf-8 -*-
import matplotlib
matplotlib.use('agg') # Backend を agg に変更する。matplatlib.pyplot を import する前にこれを実行すること
import matplotlib.pyplot as plt

plt.plot([1,2,3,4],[1,4,9,18])
plt.ylabel('some numbers')
plt.show()
plt.savefig('test01.png')

ここで Atcive Tcl を ActiveTcl Downloads - Tcl for Windows, Linux and Mac | ActiveState からダウンロード、インストールすると tkagg backend でも実行可能となる。

0 件のコメント:

コメントを投稿