I have tried to uninstall and reinstall matplotlib in my tf-gpu enviornment I made but I keep getting this error:
ImportError: cannot import name 'rcParams' from 'matplotlib'
This is the entire output I am getting on jupyter notebook:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-9-8d7d44d0fddd> in <module>
17 # import matplotlib.pyplot as plt
18 from sklearn.metrics import confusion_matrix
---> 19 from mlxtend.plotting import plot_confusion_matrix
20
21 # Removes annoying warning messages in tensorflow and python
~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\mlxtend\plotting\__init__.py in <module>
5 # License: BSD 3 clause
6
----> 7 from .decision_regions import plot_decision_regions
8 from .learning_curves import plot_learning_curves
9 from .plot_confusion_matrix import plot_confusion_matrix
~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\mlxtend\plotting\decision_regions.py in <module>
8
9 from itertools import cycle
---> 10 import matplotlib.pyplot as plt
11 import numpy as np
12 from mlxtend.utils import check_Xy, format_kwarg_dictionaries
~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\matplotlib\pyplot.py in <module>
30 from cycler import cycler
31 import matplotlib
---> 32 import matplotlib.colorbar
33 import matplotlib.image
34 from matplotlib import rcsetup, style
~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\matplotlib\colorbar.py in <module>
25
26 import matplotlib as mpl
---> 27 import matplotlib.artist as martist
28 import matplotlib.cbook as cbook
29 import matplotlib.collections as collections
~\AppData\Local\Continuum\anaconda3\envs\tf-gpu\lib\site-packages\matplotlib\artist.py in <module>
10
11 import matplotlib
---> 12 from . import cbook, docstring, rcParams
13 from .path import Path
14 from .transforms import (Bbox, IdentityTransform, Transform, TransformedBbox,
ImportError: cannot import name 'rcParams' from 'matplotlib' (unknown location)
I was not able to find a solution online, so I wanted to start a thread on this again.
UPDATE:
I tried to uninstall matplotlib using conda/pip but it still shows up in conda list output:
# Name Version Build Channel
_tflow_select 2.1.0 gpu
absl-py 0.8.1 py37_0
asn1crypto 1.0.0 pypi_0 pypi
astor 0.8.0 py37_0
attrs 19.3.0 py_0
backcall 0.1.0 py37_0
blas 1.0 mkl
bleach 3.1.0 py37_0
bzip2 1.0.8 he774522_0
ca-certificates 2019.11.27 0
censusdata 1.5 pypi_0 pypi
censusgeocode 0.4.3.post1 pypi_0 pypi
certifi 2019.11.28 py37_0
cffi 1.12.3 pypi_0 pypi
chardet 3.0.4 pypi_0 pypi
click 7.0 py37_0
click-plugins 1.1.1 py_0
cligj 0.5.0 py37_0
colorama 0.4.3 py_0
cryptography 2.7 pypi_0 pypi
cudatoolkit 10.0.130 0
cudnn 7.6.5 cuda10.0_0
curl 7.67.0 h2a8f88b_0
decorator 4.4.1 py_0
defusedxml 0.6.0 py_0
entrypoints 0.3 py37_0
et-xmlfile 1.0.1 pypi_0 pypi
expat 2.2.5 he025d50_0
fiona 1.8.4 py37h22081e2_0
freexl 1.0.5 hfa6e2cd_0
gast 0.3.2 py_0
gdal 2.3.3 py37hdf43c64_0
geopandas 0.6.1 py_0
geos 3.7.1 h33f27b4_0
grpcio 1.16.1 py37h351948d_1
h5py 2.9.0 py37h5e291fa_0
haversine 2.1.2 pypi_0 pypi
hdf4 4.2.13 h712560f_2
hdf5 1.10.4 h7ebc959_0
icc_rt 2019.0.0 h0cc432a_1
icu 58.2 ha66f8fd_1
idna 2.8 pypi_0 pypi
importlib_metadata 1.3.0 py37_0
intel-openmp 2019.4 245
ipfn 1.3.0 pypi_0 pypi
ipykernel 5.1.3 py37h39e3cac_0
ipython 7.11.1 py37h39e3cac_0
ipython_genutils 0.2.0 py37_0
ipywidgets 7.5.1 py_0
jdcal 1.4.1 pypi_0 pypi
jedi 0.15.2 py37_0
jinja2 2.10.3 py_0
joblib 0.14.0 pypi_0 pypi
jpeg 9b hb83a4c4_2
jsonschema 3.2.0 py37_0
jupyter 1.0.0 py37_7
jupyter_client 5.3.4 py37_0
jupyter_console 6.1.0 py_0
jupyter_core 4.6.1 py37_0
kealib 1.4.7 h07cbb95_6
keras 2.2.4 0
keras-applications 1.0.8 py_0
keras-base 2.2.4 py37_0
keras-preprocessing 1.1.0 py_1
krb5 1.16.4 hc04afaa_0
libboost 1.67.0 hd9e427e_4
libcurl 7.67.0 h2a8f88b_0
libgdal 2.3.3 h10f50ba_0
libiconv 1.15 h1df5818_7
libkml 1.3.0 he5f2a48_4
libnetcdf 4.6.1 h411e497_2
libpng 1.6.37 h2a8f88b_0
libpq 11.2 h3235a2c_0
libprotobuf 3.11.2 h7bd577a_0
libsodium 1.0.16 h9d3ae62_0
libspatialindex 1.9.3 h33f27b4_0
libspatialite 4.3.0a hc36aec2_19
libssh2 1.8.2 h7a1dbc1_0
libtiff 4.1.0 h56a325e_0
libxml2 2.9.9 h464c3ec_0
m2w64-gcc-libgfortran 5.3.0 6
m2w64-gcc-libs 5.3.0 7
m2w64-gcc-libs-core 5.3.0 7
m2w64-gmp 6.1.0 2
m2w64-libwinpthread-git 5.0.0.4634.697f757 2
markdown 3.1.1 py37_0
markupsafe 1.1.1 py37he774522_0
matplotlib 3.1.1 pypi_0 pypi
mistune 0.8.4 py37he774522_0
mkl 2019.4 245
mkl-service 2.3.0 py37hb782905_0
mkl_fft 1.0.15 py37h14836fe_0
mkl_random 1.1.0 py37h675688f_0
mlxtend 0.17.0 pypi_0 pypi
more-itertools 8.0.2 py_0
msys2-conda-epoch 20160418 1
munch 2.5.0 py_0
nbconvert 5.6.1 py37_0
nbformat 4.4.0 py37_0
networkx 2.4 pypi_0 pypi
notebook 6.0.2 py37_0
numpy 1.18.1 py37h93ca92e_0
numpy-base 1.18.1 py37hc3f5095_1
openpyxl 3.0.2 pypi_0 pypi
openssl 1.1.1d he774522_3
pandas 0.25.3 py37ha925a31_0
pandoc 2.2.3.2 0
pandocfilters 1.4.2 py37_1
parso 0.5.2 py_0
patsy 0.5.1 py37_0
pcre 8.43 ha925a31_0
pickleshare 0.7.5 py37_0
pip 19.3.1 py37_0
plotly 4.1.1 pypi_0 pypi
proj4 5.2.0 ha925a31_1
prometheus_client 0.7.1 py_0
prompt_toolkit 3.0.2 py_0
protobuf 3.11.2 py37h33f27b4_0
pycparser 2.19 pypi_0 pypi
pygments 2.5.2 py_0
pyopenssl 19.0.0 pypi_0 pypi
pyproj 1.9.6 py37h6782396_0
pyqt 5.9.2 py37h6538335_2
pyreadline 2.1 py37_1
pyrsistent 0.15.6 py37he774522_0
python 3.7.6 h60c2a47_2
python-dateutil 2.8.1 py_0
pytz 2019.3 py_0
pywin32 227 py37he774522_1
pywinpty 0.5.7 py37_0
pyyaml 5.2 py37he774522_0
pyzmq 18.1.0 py37ha925a31_0
qt 5.9.7 vc14h73c81de_0
qtconsole 4.6.0 py_1
requests 2.22.0 pypi_0 pypi
requests-toolbelt 0.9.1 pypi_0 pypi
retrying 1.3.3 pypi_0 pypi
rtree 0.8.3 py37_0
scipy 1.3.2 py37h29ff71c_0
seaborn 0.9.0 pypi_0 pypi
send2trash 1.5.0 py37_0
setuptools 44.0.0 py37_0
shapely 1.6.4 py37h222a598_0
sip 4.19.8 py37h6538335_0
six 1.13.0 py37_0
sklearn 0.0 pypi_0 pypi
sqlite 3.30.1 he774522_0
statsmodels 0.10.1 py37h8c2d366_0
tensorboard 1.14.0 py37he3c9ec2_0
tensorflow 1.14.0 gpu_py37h5512b17_0
tensorflow-base 1.14.0 gpu_py37h55fc52a_0
tensorflow-estimator 1.14.0 py_0
tensorflow-gpu 1.14.0 h0d30ee6_0
termcolor 1.1.0 py37_1
terminado 0.8.3 py37_0
testpath 0.4.4 py_0
time-series 0.2 pypi_0 pypi
tk 8.6.8 hfa6e2cd_0
tornado 6.0.3 py37he774522_0
traitlets 4.3.3 py37_0
urllib3 1.25.6 pypi_0 pypi
vc 14.1 h0510ff6_4
vs2015_runtime 14.16.27012 hf0eaf9b_1
wcwidth 0.1.7 py37_0
webencodings 0.5.1 py37_1
werkzeug 0.16.0 py_0
wheel 0.33.6 py37_0
widgetsnbextension 3.5.1 py37_0
wincertstore 0.2 py37_0
winpty 0.4.3 4
wrapt 1.11.2 py37he774522_0
xerces-c 3.2.2 ha925a31_0
xlrd 1.2.0 py37_0
xz 5.2.4 h2fa13f4_4
yaml 0.1.7 hc54c509_2
zeromq 4.3.1 h33f27b4_3
zipp 0.6.0 py_0
zlib 1.2.11 h62dcd97_3
zstd 1.3.7 h508b16e_0
5 Answers
Try the following:
from pylab import rcParams
I came across this error after reinstalling matplotlib twice and facing other Errors, which are:
ValueError: setting an array element with a sequence
ValueError: 'transform' must be an instance of 'matplotlib.transform.Transform'
I was able to solve the above issues by reinstalling matplotlib using:
conda install -f matplotlib
But surprisingly I was able to solve this (ImportError: cannot import name 'rcParams' from 'matplotlib') just by restarting the Spyder (Python 3.7) from File Menu > Restart option.
I restarted and then ran the code without any modifications, and it worked.
I was able to fix the issue above by first uninstalling and installing matplotlib. Then completely creating a new notebook. For some reason the old notebook still gave me the same error but when I create a new notebook in the same environment it worked, go figure.
I'm not certain if this corresponds to a recent change in how matplotlib works or if it was always so, but when I encountered the same error, it seemed that the issue was that rcParams cannot be directly imported with an import statement. You must first import matplotlib, thus causing the module to be loaded into memory, cached, and possibly generate some dynamic objects. Then you can access rcParams.
Case in point, this fails:
import matplotlib.rcParams as rcp
Traceback (most recent call last):
File "/home/nc/miniconda3/envs/pybnn/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3417, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-d4bca3da3c19>", line 1, in <module>
import matplotlib.rcParams as rcp
File "/snap/pycharm-community/211/plugins/python-ce/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'matplotlib.rcParams'
However, this works:
import matplotlib as mpl
rcp = mpl.rcParams
Backend Qt5Agg is interactive backend. Turning interactive mode on.
WARNING: QApplication was not created in the main() thread.
type(rcp)
Out[5]: matplotlib.RcParams
I'm using matplotlib 3.3.1.
Uninstall anaconda and run again it worked for me