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

投稿者: | 2014年8月29日

78,480 views

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

1. 現象

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

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

うんともすんとも…

2. 原因

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

3. 対策

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

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

CentOS, RHELの場合、yum でインストールすればよい。

$ sudo yum install tk.x86_64 tk-devel.x86_64 tkinter.x86_64

Ubuntuの場合、apt で python3-tk をインストールすればよい。

$ sudo apt install python3-tk

※Ubuntuの場合の対策例は、下記投稿にも書いてあります。
(42)【PyTorch】Sin関数を近似するモデルを作る。

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

$ python
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
'/usr/local/lib/python3.12/site-packages/matplotlib/mpl-data/matplotlibrc'

matplotlibrc なる設定ファイルが存在することがわかった。

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

matplotlibrc なる設定ファイルを開き、編集する。

$ sudo vi /mpl-data/matplotlibrc

パラメータ backend を tkagg に設定する。

#### 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

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


2023.03.26追記
最新の Anacondaのインストール手順をこちら(↓)に記載しました。
(118) Anacondaのインストール (Python 3.10)
ここから下は古い情報です。


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
/home/{user}/anaconda3/bin/python3
$ python3

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

$ conda update conda

アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済
  • 2025-09-11: 1回
  • 2025-09-10: 9回
  • 2025-09-09: 12回
  • 2025-09-08: 15回
  • 2025-09-07: 8回
  • 2025-09-06: 3回
  • 2025-09-05: 10回
  • コメントを残す

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