“UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.” when plotting figure with pyplot on Pycharm

前端 未结 14 617
梦谈多话
梦谈多话 2020-12-22 18:33

I am trying to plot a simple graph using pyplot, e.g.:

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

but the figure

相关标签:
14条回答
  • 2020-12-22 19:01

    I found a solution to my problem (thanks to the help of ImportanceOfBeingErnest).

    All I had to do was to install tkinter through the Linux bash terminal using the following command:

    sudo apt-get install python3-tk
    

    instead of installing it with pip or directly in the virtual environment in Pycharm.

    0 讨论(0)
  • 2020-12-22 19:06

    After upgrading lots of packages (Spyder 3 to 4, Keras and Tensorflow and lots of their dependencies), I had the same problem today! I cannot figure out what happened; but the (conda-based) virtual environment that kept using Spyder 3 did not have the problem. Although installing tkinter or changing the backend, via matplotlib.use('TkAgg) as shown above, or this nice post on how to change the backend, might well resolve the problem, I don't see these as rigid solutions. For me, uninstalling matplotlib and reinstalling it was magic and the problem was solved.

    pip uninstall matplotlib
    

    ... then, install

    pip install matplotlib
    

    From all the above, this could be a package management problem, and BTW, I use both conda and pip, whenever feasible.

    0 讨论(0)
  • 2020-12-22 19:07

    Try import tkinter because pycharm already installed tkinter for you, I looked Install tkinter for Python

    You can maybe try:

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

    as a tkinter-installing way

    I've tried your way, it seems no error to run at my computer, it successfully shows the figure. maybe because pycharm have tkinter as a system package, so u don't need to install it. But if u can't find tkinter inside, you can go to Tkdocs to see the way of installing tkinter, as it mentions, tkinter is a core package for python.

    0 讨论(0)
  • 2020-12-22 19:09

    Simple install

    pip3 install PyQt5==5.9.2
    

    It works for me.

    0 讨论(0)
  • 2020-12-22 19:09

    The comment by @xicocaio should be highlighted.

    tkinter is python version-specific in the sense that sudo apt-get install python3-tk will install tkinter exclusively for your default version of python. Suppose you have different python versions within various virtual environments, you will have to install tkinter for the desired python version used in that virtual environment. For example, sudo apt-get install python3.7-tk. Not doing this will still lead to No module named ' tkinter' errors, even after installing it for the global python version.

    0 讨论(0)
  • 2020-12-22 19:10

    This worked with R reticulate. Found it here.

    1: matplotlib.use( 'tkagg' ) or 2: matplotlib$use( 'tkagg' )

    For example:

    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib import style
    
    import matplotlib
    matplotlib.use( 'tkagg' )
    
    
    style.use("ggplot")
    from sklearn import svm
    
    x = [1, 5, 1.5, 8, 1, 9]
    y = [2, 8, 1.8, 8, 0.6, 11]
    
    plt.scatter(x,y)
    plt.show()
    
    0 讨论(0)
提交回复
热议问题