2

I recently upgraded from matplotlib v1.5.3 from v2.0.0, but with this change, it seems that matplotlib no longer uses my edited matplotlibrc file when plotting figures. When I open the matplotlibrc file, I see that my changes are in fact implemented, but when I type matplotlib.rcParams, these changes are not displayed. Thinking that maybe it was looking at a different matplotlibrc file, I ran matplotlib.matplotlib_fname(), but this points to the same directory of my edited matplotlibrc file.

Does anyone know what's going on here?

FYI, I am running matplotlib 2.0.0 in Python 2.7.12 with IPython 5.1.0. To open matplotlib in IPython, I utilize first the command %matplotlib.

Ben Donovan
  • 199
  • 1
  • 7

2 Answers2

2

For me, the problem was that the matplotlibrc was working, then iPython was overriding it at the end of the cell. The way to check for this is to import matplotlib and print the plt.rcParams dict in the same cell, then run the same cell again. If it changes between calls, iPython is overriding it.

The fix is to add

c.InteractiveShellApp.matplotlib = 'inline'
c.InlineBackend.rc = {}

to your ipython_config.py. The second line tells iPython not to update the rParams dict.

Andy Jones
  • 4,723
  • 2
  • 19
  • 24
1

In matplotlib 2.0.0, the default location on Linux for the matplotlibrc file has moved from

~/.matplotlib/matplotlibrc

to

~/.config/matplotlib/matplotlibrc 

Try moving your customised file to there and see if it works. That worked for me when I moved from 1.5.3 to 2.0.0.

See the docs for more info on how it finds the right matplotlibrc file.

tmdavison
  • 64,360
  • 12
  • 187
  • 165