Linuxでmatplotlib.showによるグラフ表示ができないときの対応

この記事は公開から2年以上経過しています。

Linux(openSUSE Leap 15.3)でPython 3.9 + matplotlibを使ってグラフを表示しようとしたところ何も表示されなかったので、そのとき行った対応についての備忘録。


問題

matplotlibを使用して

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4])
h = np.array([2, 3, 4, 5])

plt.bar(x, h)
plt.show()

のようなコードを実行すると、グラフウィンドウが表示されない。

また、そのときターミナルには

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

のような警告が表示されている。


原因

GUI描画のバックエンドが見つからず、ファイル出力用のバックエンドである’Agg’が利用されている。


対応

Linux環境にPythonのGUIツールキット(TkInter)をインストールする。

私の環境の場合は以下のコマンドでPython3.9用のTkInterをインストール。

sudo zypper install python39-tk

お使いのディストリビューションとPythonバージョンによってコマンドやパッケージ名称が異なります。


結果

TkInterをインストールすると、以下のようにグラフが表示されるようになります。

file


参考ウェブサイトなど

  • matplotlib
    Backends

  • Python
    tkinter — Tcl/Tk の Python インターフェース

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする