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 does not appear and I get the following message:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
I saw in several places that one had to change the configuration of matplotlib using the following:
import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt
I did this, but then got an error message because it cannot find a module:
ModuleNotFoundError: No module named 'tkinter'
Then, I tried to install "tkinter" using
pip install tkinter (inside the virtual environment), but it does not find it:
Collecting tkinter Could not find a version that satisfies the requirement tkinter (from versions: ) No matching distribution found for tkinter
I should also mention that I am running all this on Pycharm Community Edition IDE using a virtual environment, and that my operating system is Linux/Ubuntu 18.04.
I would like to know how I can solve this problem in order to be able to display the graph.
This question is tagged with
~ Asked on 2019-06-18 20:43:38
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.
~ Answered on 2019-06-19 20:48:03
In my case, the error message was implying that I was working in a headless console. So
plt.show() could not work. What worked was calling
import matplotlib.pyplot as plt plt.plot([1,2,3], [5,7,4]) plt.savefig("mygraph.png")
I found the answer on a github repository.
~ Answered on 2019-10-01 09:33:56