I have seen this question come up a couple of times, but I think this information changes as jupyter/ipython get updated. I am currently running python 3.5, jupyter (latest) and matplotlib 2.0.
The %matplotlib inline
plots have custom properties that are set after the matplotlibrc file is imported. The most annoying of these is that the figure.facecolor
property is set to be transparent which wreaks havoc when copy/pasting plots so I have to reset this property in the notebook. I cannot seem to find where this property is changed, or if it is possible to create a configuration profile somewhere to change these special inline
plot settings
My question is, is it possible to change these settings, and if so, how would I do that?
Some of the rcParameters are set specifically for the inline
backend. Those are
{'figure.figsize': (6.0,4.0),
'figure.facecolor': (1,1,1,0), # play nicely with white background in the Qt and notebook
'figure.edgecolor': (1,1,1,0),
'font.size': 10, # 12pt labels get cutoff on 6x4 logplots, so use 10pt.
'figure.dpi': 72, # 72 dpi matches SVG/qtconsole
'figure.subplot.bottom' : .125 # 10pt still needs a little more room on the xlabel
}
And the place where they reside is the ipykernel/pylab/config.py
file.
This file can be edited to obtain the desired behaviour, e.g. by changing the facecolor to 'figure.facecolor': (1,1,1,1)
(no transparency).
Another option is the following:
The rcParameters are defined as part of the InlineBackend
class, specifically the InlineBackend.rc
attribute which is a traitlets.Dict
object.
Those can be changed using the ipython configuration system as follows.
From the command line type ipython profile create
which will generate the default configuration files in ~/.ipython
. In the main configuration file ~/.ipython/ipython_config.py
include the line:
c.InlineBackend.rc.update({"figure.facecolor": "white"})