この記事は公開から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をインストールすると、以下のようにグラフが表示されるようになります。
参考ウェブサイトなど
-
matplotlib
Backends -
Python
tkinter — Tcl/Tk の Python インターフェース
以上です。