I first came across the answer to this question where I found out I needed to install my own backend framework. Since the answer mentioned PyQt4, I chose to go with that. Following links in the doc, I eventually ended up downloaded SIP (pre-req for PyQt4) and then PyQt4 from here. Finally, in my code, I have:
import matplotlib
matplotlib.use('Qt4agg') # need to call use() before importing plt
import matplotlib.pyplot as plt
However I'm still getting this error:
Traceback (most recent call last): File ".../venv/lib/python3.5/site-packages/matplotlib/backends/qt_compat.py", line 159, in from PySide import QtCore, QtGui, version, version_info ImportError: No module named 'PySide'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File ".../program.py", line 7, in import matplotlib.pyplot as plt File ".../venv/lib/python3.5/site-packages/matplotlib/pyplot.py", line 114, in _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File ".../venv/lib/python3.5/site-packages/matplotlib/backends/init.py", line 32, in pylab_setup globals(),locals(),[backend_name],0)
File ".../venv/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py", line 18, in from .backend_qt5agg import FigureCanvasQTAggBase as _FigureCanvasQTAggBase
File ".../venv/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py", line 15, in from .backend_qt5 import QtCore
File ".../venv/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py", line 31, in from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, version
File ".../venv/lib/python3.5/site-packages/matplotlib/backends/qt_compat.py", line 162, in "Matplotlib qt-based backends require an external PyQt4, PyQt5,\n" ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5, or PySide package to be installed, but it was not found.
Has anyone experienced this before? Any debugging advice or help on where to go from here?
EDIT: I'll add that trying to import PyQt4
from my virtual environment works, so I'm not sure why matplotlib isn't finding it...
EDIT2: Not sure if it matters but I'm using PyCharm
TkAgg
generally works). – user707650matplotlib.use('Qt4Agg')
(capital A), instead of usingQt4agg
. – user707650