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

时间:2016-03-11 12:12:22

标签: 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]

但是,当我使用内联后端时,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]

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

c.InlineBackend.rc = {'figure.figsize': (7.5, 5.0) }

但这也没有效果。现在我不想在每个笔记本中添加这一行:

matplotlib.rcParams['figure.figsize']=[7.5, 5.0]

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

5 个答案:

答案 0 :(得分:17)

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

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

由于c.InlineBackend.rc指定了matplotlib config 覆盖,因此空白字典会告诉IPython内核不要覆盖任何.matplotlibrc设置。

如果该文件不存在,请运行ipython profile create进行创建。

答案 1 :(得分:1)

在顶部单元格中使用figsize(宽度,高度),它会改变以下图表的宽度

答案 2 :(得分:1)

至少在Windows上使用Jupyter,我能够使用类似于venkat的答案,即:

%matplotlib inline
import matplotlib
matplotlib.rcParams['figure.figsize'] = (8, 8)

我这样做是为了勾勒出圆圈,这个圆圈已经相当于圆锥形了。看,平方圈并不难。 :)

答案 3 :(得分:1)

请注意,如果您从虚拟环境运行ipython_kernel_config.py,则ipython的路径会有所不同。在这种情况下,请在存储环境的路径中进行挖掘。

答案 4 :(得分:0)

对于使用IPython内核的jupyter 5.x及更高版本,您可以覆盖特定的密钥,并通过在您的figsize中添加所需~/.ipython/profile_default/ipython_kernel_config.py这样的内容来完成剩下的工作:

c = get_config()
c.InlineBackend.rc.update({"figure.figsize": (12, 10)})