Sponsored Link

(47) matplotlibでグラフ表示できない [解決]

(47) matplotlibでグラフ表示できない [解決]

別マシンへのインストール時に再度はまりそうなのでメモしておく。

(1) 現象

matplotlibを使ってグラフを表示しようとしたが表示されない。エラーも出ず…

>>> import matplotlib.pyplot as plt
>>> plt.plot([1,2,3,4])
>>> plt.show()

うんともすんとも…

(2) 原因

matplotlibの backend指定がデフォルトで画面表示できないもの backend : agg になっていた。
これを画面表示可能な backendに変える必要がある。

(3) 対策

二重三重にはまったので整理して結論だけメモしておく。

(1) Tcl/Tk関連パッケージをインストールする。

# yum install tk.x86_64
# yum install tk-devel.x86_64
# yum install tkinter.x86_64

(2) matplotlibをインストールしなおす。

$ python setup.py build
$ sudo python setup.py install

この時点でまだ表示できないようなら以下を確認する。

(3) matplotlibの設定ファイルの場所を知る。

$ python
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
'/usr/local/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg/matplotlib/mpl-data/matplotlibrc'

(4) matplotlibの設定ファイルでbackend指定を書き換える。

# vi /mpl-data/matplotlibrc
#### CONFIGURATION BEGINS HERE
# the default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg MacOSX Qt4Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
# Template
# You can also deploy your own backend outside of matplotlib by
# referring to the module name (which must be in the PYTHONPATH) as
# 'module://my_backend'
#backend      : agg
backend      : tkagg

(1),(2)を先にやっていれば、(3),(4)は必要なかったかもしれない。
今度別マシンにインストールするときにはこの手順でやってみよう。

(4) 確認結果

できた!

>>> import matplotlib.pyplot as plt
>>> plt.plot([1,2,3,4])
>>> plt.show()

20140829_01

(x) 面倒な場合はAnaconda

Anaconda(Python distributionの一つ)をインストールすれば、数値計算系の Pythonパッケージをごそっと入れてくれる。もちろん matplotlibも最初から表示できるように設定されている。
参考1: Python Distributions
参考2: Anaconda

Anacondaは以下の手順で非rootでもインストールできる。

wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
chmod +x Anaconda3-4.4.0-Linux-x86_64.sh
./Anaconda3-4.4.0-Linux-x86_64.sh

実行時はパスを通す。

export PATH=~/anaconda3/bin/:$PATH
python3

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*