「UserWarning:Matplotlibは現在非GUIバックエンドであるaggを使用しているため、図を表示できません。」Pycharmにpyplotで図形をプロットするとき


125

私は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'

次に、pip install tkinter(仮想環境内で)を使用して「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でこれらすべてを実行していること、および私のオペレーティングシステムがLinux / Ubuntu18.04であることにも言及する必要があります。

グラフを表示できるようにするために、この問題をどのように解決できるか知りたいです。


7
グラフのことはちょっと忘れてください。あなたの問題はtkinterをインストールすることです。それに対して利用可能なソリューションのいずれかを試しましたか?たとえば、stackoverflow.com / questions / 4783810 / install-tkinter-for-python
ImportanceOfBeingErnest

3
実際にtkinterを何かに使用していますか、それとも単にpltバックエンドとして選択しましたか?
G.アンダーソン

1
@ImportanceOfBeingErnest:ヒントをありがとう。私は確かに最初にtkinterをインストールすることに焦点を合わせます。あなたが提供したリンクを見て、それから何かを作ることができるかどうかを確認します。
johnwolf19 8719年

1
@ G.Anderson:matplotlibでこのエラーが発生する前は、tkinterが何であるかわかりませんでした。今、私はグラフを表示できるようにするためだけにインストールしようとしています(そうです、私はそれをpltバックエンドとして選んだと思います)。他の方法(つまり、tkinterを使用しない)を知っているなら、私はそれを聞いてうれしいです。
johnwolf19 8719年

2
@ G.Anderson:スクリプトを実行して、さまざまなバックエンドを循環させました。TkAggのみが利用可能であることが判明しました!実際、スクリプトをテストする前にインストールしたばかりでした。
johnwolf19 8719年

回答:


191

私は自分の問題の解決策を見つけました(ImportanceOfBeingErnestの助けに感謝します)。

私がしなければならなかったのはtkinter、次のコマンドを使用してLinuxbashターミナルからインストールすることだけでした。

sudo apt-get install python3-tk

pipPycharmの仮想環境と一緒にまたは直接インストールする代わりに。


7
実際、tkinterをインストールしたので、コードの最初の2行を追加する必要がなくなったことにも気づきました(import matplotlibおよびmatplotlib.use('TkAgg')
johnwolf19 8719年

完全を期すために、OpenSuse Leapでは、インストールする必要のあるパッケージはと呼ばれていpython3-matplotlib-tkます。
エルドラッド

5
この回答はtkinter、この特定のコマンドがtkinterデフォルトバージョンのPython専用にインストールされるという意味で、Pythonバージョン固有であるとおそらく言及する可能性があります。さまざまな仮想環境に異なるPythonバージョンがインストールされているとします。その場合、その動作中のvenvで使用される目的のPythonバージョン用にインストールする必要があります。たとえば、私の場合:sudo apt-get install python3.7-tk。これを知らなかったため、グローバルpythonバージョン用にインストールした後でも、モジュール名「tkinter」エラーが発生しないのにかなりの時間がかかりました。
xicocaio

このコマンドを実行するには、PCにLinuxBashターミナルをインストールする必要がありました。そしてそれはうまくいきました!参照してくださいhowtogeek.com/249966/...
arame3333

38

私の場合、エラーメッセージは、ヘッドレスコンソールで作業していることを示していました。だからplt.show()働くことができませんでした。うまくいったのは電話でしたplt.savefig

import matplotlib.pyplot as plt

plt.plot([1,2,3], [5,7,4])
plt.savefig("mygraph.png")

githubリポジトリで答えを見つけました。


16

Arch Linux(Manjaroまたはのようなディストリビューション)を使用する場合は、次のようにAntegros入力するだけです。

sudo pacman -S tk

そして、すべてが完璧に機能します!


1
ありがとうございました。それを探していました。
logicOnAbstractions

7

import tkinterpycharmがすでにtkinterをインストールしているので試してみてください、私はPython用のtkinterのインストールを探しました

あなたは多分試すことができます:

import tkinter
import matplotlib
matplotlib.use('TkAgg')
plt.plot([1,2,3],[5,7,4])
plt.show()

tkinterインストール方法として

私はあなたのやり方を試しました、それは私のコンピュータで実行するのにエラーがないようです、それはうまく図を示しています。おそらくpycharmにはシステムパッケージとしてtkinterがあるので、インストールする必要はありません。しかし、内部にtkinterが見つからない場合は、Tkdocsにアクセスして、tkinterをインストールする方法を確認できます。前述のとおりtkinterはPythonのコアパッケージです。


提案ありがとう。残念ながら、それは機能しません(ModuleNotFoundError: No module named 'tkinter')。他の方法でtkinterをインストールしようと思います。
johnwolf19 8719年

6

私もPyCharmでこの問題を抱えていました。この問題は、マシンにtkinterモジュールがないためです。

インストールするには、以下の手順に従ってください(適切なOSを選択してください)

Ubuntuユーザー向け

 sudo apt-get install python-tk

または

 sudo apt-get install python3-tk

Centosユーザーの場合

 sudo yum install python-tkinter

または

 sudo yum install python3-tkinter

Windowsの場合、pipを使用してtkをインストールします

tkinterをインストールした後、Pycharmを再起動してコードを実行すると、機能します


3

簡単なインストール

pip3 install PyQt5==5.9.2

わたしにはできる。


うん、それは動作します!PyCharmのターミナルを介して仮想環境内にインストールしました。
WHリー

バージョン番号を指定せずに「pip3installPyQt5」を実行します。
oraclesoon

1

コマンドaggを使用してfromからTkinterにバックエンドを使用してmatplotlibを変更できますTKAgg

matplotlib.use('TKAgg',warn=False, force=True)

インタラクティブなipythonコンソールをリロードする必要がなかったので、これは非常に役に立ちました。ありがとう
Iulian Pinzaru

0

Linux Mint 19.私を助けてくれました:

sudo apt install tk-dev

PSパッケージのインストール後にPythonインタープリターを再コンパイルします。


0

これが誰かを助ける場合に備えて。

Pythonバージョン:3.7.7プラットフォーム:Ubuntu 18.04.4 LTS

これにはデフォルトのPythonバージョン3.6.9が付属していましたが、独自の3.7.7バージョンのPythonをインストールしていました(ソースからビルドしてインストールしました)

help('module')リストにtkinterが表示されていても、tkinterは機能していませんでした。

次の手順は私のために働いた:

  1. sudo apt-get install tk-dev.

Pythonを再構築します。1。Pythonフォルダーに移動し、チェックを実行します。

cd Python-3.7.7
sudo ./configure --enable-optimizations
  1. makeコマンドを使用してビルドします sudo make -j 8 。---ここで8はプロセッサの数です、nprocコマンドを使用して確認してください。
  2. 使用してインストール:

    sudo make altinstall
    

sudo make installを使用しないでください。デフォルトの3.6.9バージョンが上書きされ、後で面倒になる可能性があります。

  1. 今すぐtkinterをチェックしてください
    python3.7 -m tkinter
    

Windowsボックスがポップアップし、tkinterの準備が整いました。


0

多くのパッケージ(Spyder3から4、KerasおよびTensorflowそれらの依存関係の多く)をアップグレードした後、今日も同じ問題が発生しました。何が起こったのか理解できません。しかし、Spyder3を使い続けた(コンダベースの)仮想環境には問題はありませんでした。上記のようにtkinterバックエンドをインストールまたは変更するか、バックエンドを変更する方法via matplotlib.use('TkAgg)に関するこの素晴らしい投稿で 問題が解決する可能性はありますが、これらは厳密な解決策ではありません。私にとって、それをアンインストールして再インストールすることは魔法であり、問​​題は解決されました。matplotlib

pip uninstall matplotlib

...次に、インストールします

pip install matplotlib

上記のすべてから、これはパッケージ管理の問題である可能性があります。ところで、可能な限り、condaとの両方を使用しますpip


0

Spyderでこのエラーが発生したとき、コードを1行ずつ実行することから、コードをプロットするブロックを強調表示して一度に実行することに変更しました。出来上がり、画像が登場しました。


0

%matplotlibをインラインで追加する と、プロットがJupyterNotebookに表示されました。


0

@xicocaioによるコメントを強調表示する必要があります。

tkinterはsudo apt-get install python3-tk、デフォルトバージョンのpython専用にtkinterをインストールするという意味で、pythonバージョン固有です。さまざまな仮想環境内に異なるPythonバージョンがあるとすると、その仮想環境で使用される目的のPythonバージョン用にtkinterをインストールする必要があります。たとえば、sudo apt-get install python3.7-tk。これを行わないNo module named ' tkinter'と、グローバルpythonバージョン用にインストールした後でも、エラーが発生します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.