【问题标题】:Matplotlib figure size in Jupyter reset by inlining in Jupyter通过 Jupyter 中的内联重置 Jupyter 中的 Matplotlib 图形大小
【发布时间】:2016-09-04 14:10:25
【问题描述】:

这个问题比较好奇。

要将默认无花果大小更改为 matplotlib 中的自定义大小,可以这样做

from matplotlib import rcParams
from matplotlib import pyplot as plt
rcParams['figure.figsize'] = 15, 9

之后,图形以选定的大小出现。

现在,我发现了一些新的东西(以前从未发生过/注意到):在 Jupyter 笔记本中,当将 matplotlib 内联为

%matplotlib inline

这显然会覆盖rcParams 字典,恢复图形大小的默认值。因此,为了能够设置大小,我必须在更改 rcParams 字典的值之前内联 matplotlib

我使用的是 Mac OS 10.11.6、matplotlib 版本 1.5.1、Python 2.7.10、Jupyter 4.1。

【问题讨论】:

  • 这是对内联模式如何工作的准确描述。如果您进一步挖掘,您会发现它还将情节背景设置为白色等。
  • @jakevdp 在这种情况下,我想一个有用的答案会解释内联模式的工作原理以及它为什么会覆盖字典。

标签: python matplotlib plot jupyter


【解决方案1】:

IPython 的内联后端sets some rcParams 在初始化时。这是可配置的,您可以使用自己的配置覆盖它:

# in ~/.ipython/ipython_config.py
c.InlineBackend.rc = {
    'figure.figsize': (15, 9)
}

以上内容将替换内联后端设置的所有 rcParam,您将获得完全控制权。如果你已经有一个 matplotlib 样式可以很好地用于内联输出,你可以告诉后端不要管所有的东西:

c.InlineBackend.rc = {}

如果您只想更改几个值,而不是覆盖整个值,可以使用字典.update 方法:

c.InlineBackend.rc.update({'figure.figsize': (15, 9)})

在未来,内联后端应该通过 matplotlib 的新样式机制执行其默认设置,这应该使其在尊重您的偏好和允许更轻松的定制方面表现得更好。

【讨论】:

  • 如你所说,根据 matplotlib 现在提供的样式管理,现在有新的方法可以继续吗?
猜你喜欢
  • 2016-07-21
  • 2016-06-26
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
相关资源
最近更新 更多