在jupyter笔记本中内联后端的matplotlib配置

Sco*_*ton 14 matplotlib jupyter-notebook

我想学习如何使用jupyter笔记本中的内联后端配置matplotlib的默认值.具体来说,我想将默认的'figure.figsize'设置为[7.5,5.0]而不是默认的[6.0,4.0].我正在使用matplotlib 1.4.3在Mac上使用jupyter notebook 1.1.

在笔记本中,使用macosx后端,我的matplotlibrc文件显示在标准位置,figsize按照matplotlibrc中的指定设置:

In [1]: %matplotlib
Using matplotlib backend: MacOSX

In [2]: mpl.matplotlib_fname()
Out[2]: u'/Users/scott/.matplotlib/matplotlibrc'

In [3]: matplotlib.rcParams['figure.figsize']
Out[3]:[7.5, 5.0]
Run Code Online (Sandbox Code Playgroud)

但是,当我使用内联后端时,figsize设置不同:

In [1]: %matplotlib inline

In [2]: mpl.matplotlib_fname()
Out[2]: u'/Users/scott/.matplotlib/matplotlibrc'

In [3]: matplotlib.rcParams['figure.figsize']
Out[3]:[6.0, 4.0]
Run Code Online (Sandbox Code Playgroud)

在我的笔记本配置文件〜/ .jupyter/jupyter_notebook_config.py中,我还添加了该行

c.InlineBackend.rc = {'figure.figsize': (7.5, 5.0) }
Run Code Online (Sandbox Code Playgroud)

但这也没有效果.现在我被困在每个笔记本中添加这一行:

matplotlib.rcParams['figure.figsize']=[7.5, 5.0]
Run Code Online (Sandbox Code Playgroud)

有没有办法设置内联后端的默认值?

bka*_*uka 18

Jupyter/IPython分裂令人困惑.Jupyter是内核的前端,其中IPython是事实上的Python内核.您正在尝试更改与matplotlib相关的内容,这仅在IPython内核的范围内有意义.对matplotlib进行更改~/.jupyter/jupyter_notebook_config.py将适用于所有可能没有意义的内核(在运行不使用matplotlib的Ruby/R/Bash/etc.内核的情况下).因此,您的c.InlineBackend.rc设置需要进入IPython内核的设置.

编辑文件~/.ipython/profile_default/ipython_kernel_config.py并添加到底部:c.InlineBackend.rc = { }.

由于c.InlineBackend.rc指定matplotlib配置覆盖,空白dict告诉IPython内核不要覆盖任何.matplotlibrc设置.

如果该文件不存在,请运行ipython profile create以创建它.

  • 我意识到.这些是ipython内核的设置,它仍然作为jupyter的内核存在.笔记本ui和jupyter特定事物的设置在〜/ .jupyter(或任何jupyter配置目录)中,ipython内核的设置在ipython配置目录中. (6认同)