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()
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