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

投稿者: | 2014年8月29日

76,502 views

この記事は最終更新から 506日 が経過しています。

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

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

5. 面倒な場合はAnaconda

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

linux版インストーラーは、こちらの anaconda公式サイトの下の方からダウンロードできる。
https://www.anaconda.com/download/

もしくは、リンク先から wgetコマンドで取得してもよい。

$ wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

Anacondaは以下の手順で非rootでもインストールできる。
ダウンロードしたスクリプトファイルに実行属性を付与し、実行する。

$ chmod +x ./Anaconda3-2023.03-1-Linux-x86_64.sh
$ ./Anaconda3-2023.03-1-Linux-x86_64.sh

実行時はパスを通す。

$ export PATH=~/anaconda3/bin/:$PATH
$ which python3
$ python3
/home/{user}/anaconda3/bin/python3

Anacondaのアップデートは以下を実行する。

$ conda update conda

コメントを残す

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