1. ホーム
  2. パイソン

[解決済み】「UserWarning: Matplotlibは現在非GUIバックエンドであるaggを使用しているため、図を表示できません" Pycharm上のpyplotで図を描画する場合

2022-04-15 21:46:47

質問

pyplotを使って簡単なグラフを作図しようとしています。

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

と表示されるのですが、図が表示されず、以下のメッセージが表示されます。

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

matplotlibの設定を下記で変更しなければならないというのを何箇所かで見かけました。

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

このようにしましたが、その後、モジュールが見つからないというエラーメッセージが表示されました。

ModuleNotFoundError: No module named 'tkinter'

次に、quot;tkinter" をインストールしようとしました。 pip install tkinter (仮想環境内)ですが、見つかりませんでした。

Collecting tkinter
  Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

なお、この作業はすべてPycharm Community Edition IDE上で仮想環境を使って行っており、OSはLinux/Ubuntu 18.04であることを明記しておく。

グラフを表示できるようにするために、この問題を解決する方法を教えてほしいです。

どのように解決するのですか?

解決策1: GUIバックエンドをインストールします。 tk

私の問題を解決する方法が見つかりました(おかげさまで アーネストであることの重要性 ).

をインストールするだけでした。 tkinter をLinuxのbashターミナルから以下のコマンドで実行しました。

sudo apt-get install python3-tk

でインストールするのではなく pip またはPycharmの仮想環境に直接入れてください。

解決策2:いずれかの matplotlib サポートされているGUIバックエンド

  • 解決策1は、GUIバックエンドを得ることができるので、うまくいきます。 TkAgg
  • しかし、次のような matplolib GUI バックエンドをインストールすることで、問題を解決することもできます。 Qt5Agg , GTKAgg , Qt4Agg など
    • 例えば pip install pyqt5 も修正されます。

NOTE

  • 通常このエラーは、pip で matplotlib をインストールし、GUI ウィンドウにプロットを表示しようとしていて、GUI 表示用の Python モジュールを持っていない場合に表示されます。
  • の作者は matplotlib はGUIバックエンドに依存しないようにしました。 必要 matplotlib GUIバックエンドなしで。