如何在 ipython 笔记本中设置 matplotlib 图形默认大小?

Posted

技术标签:

【中文标题】如何在 ipython 笔记本中设置 matplotlib 图形默认大小?【英文标题】:How to set the matplotlib figure default size in ipython notebook? 【发布时间】:2013-06-18 07:44:33 【问题描述】:

我使用“$ipython notebook --pylab inline”来启动ipython notebook。显示 matplotlib 图形大小对我来说太大了,我必须手动调整它。如何设置单元格中显示的图形的默认大小?

【问题讨论】:

【参考方案1】:

我相信以下工作在 0.11 及更高版本中。检查版本:

$ ipython --version

可能值得将此信息添加到您的问题中。

解决方案:

您需要找到文件ipython_notebook_config.py。根据您的安装过程,这应该在类似的地方

.config/ipython/profile_default/ipython_notebook_config.py

.config 在您的主目录中。

找到此文件后,找到以下行

# Subset of matplotlib rcParams that should be different for the inline backend.
# c.InlineBackend.rc = 'font.size': 10, 'figure.figsize': (6.0, 4.0), 'figure.facecolor': 'white', 'savefig.dpi': 72, 'figure.subplot.bottom': 0.125, 'figure.edgecolor': 'white'

取消注释这行 c.InlineBack... 并在第二个字典条目中定义您的默认 figsize。

请注意,这可以使用

在 python 脚本中完成(因此在 IPython 中以交互方式完成)
pylab.rcParams['figure.figsize'] = (10.0, 8.0)

【讨论】:

在 ipython 2.0 中,配置文件位于 .ipython/profile_default/ipython_notebook_config.py 在旧版本的 iPython 中,ipython_notebook_config.py 不包含配置内联后端的行。由于更新 iPython 时配置文件不会自动更新(至少在 Windows 上),因此您需要删除它并通过运行 ipython profile create 生成新的配置文件,如下面的@anmol 建议的那样。 您可以使用ipython profile locate找到现有的个人资料。 如果你使用 matplotlib 而不是 pyplot,交互命令是matplotlib.rcParams['figure.figsize'] = (10.0, 8.0) 我正在使用 jupyter 4.1.0-6 和 python-ipykernel 4.5.2-3 和 ipython 5.3.0-1(它们都在 Arch 上)并且我没有标题为 ipython_notebook_config.py 的文件在我的~ 下。知道最新版本中发生了什么变化吗?【参考方案2】:

如果您没有这个 ipython_notebook_config.py 文件,您可以按照自述文件并键入来创建一个

ipython profile create

【讨论】:

【参考方案3】:

在 iPython 3.0.0 中,需要在ipython_kernel_config.py 中配置内联后端。您需要手动添加 c.InlineBackend.rc... 行(如 Greg 的回答中所述)。这将影响 Qt 控制台和笔记本中的内联后端。

【讨论】:

【参考方案4】:

工作对我来说很有吸引力:

matplotlib.rcParams['figure.figsize'] = (20, 10)

【讨论】:

我不知道这是多么地道,但我为我的 jupyter 笔记本调整了它以使其工作:import matplotlib.pyplot as plt%matplotlib inlineplt.rcParams['figure.figsize'] = (20.0, 10.0) 还有plt.rc('figure', figsize=(20.0, 10.0)) 很奇怪,但经过一些更新后,我需要将 %matplotlib inlineplt.rc(...) 拆分到不同的单元格中,以便后者工作。 matplotlib.rcParams[...] 也是如此 还要确保这一行在%matplotlib inline之后【参考方案5】:

为了完整起见,这也有效

from IPython.core.pylabtools import figsize
figsize(14, 7)

它是rcParams 解决方案的包装器

【讨论】:

对于具有多个情节的大型笔记本很重要,并且像魅力一样工作【参考方案6】:
plt.rcParams['figure.figsize'] = (15, 5)

【讨论】:

【参考方案7】:

您可以使用"run commands"rc更改默认图形大小:

plt.rc('figure', figsize=(w,h))

【讨论】:

【参考方案8】:

所以,在 macos 上一个可行的解决方案是

echo "
c.InlineBackend.rc = 
         'font.size': 10,
         'figure.figsize': (25.0, 5.0),
         'figure.facecolor': 'white', 
         'savefig.dpi': 72,
         'figure.subplot.bottom': 0.125,
         'figure.edgecolor': 'white'

" >> "$(ipython locate profile)/ipython_kernel_config.py"

【讨论】:

以上是关于如何在 ipython 笔记本中设置 matplotlib 图形默认大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PyCharm 中设置 ipython 配置文件

如何在 VSCode Ipython 中设置 cwd?

使用 Apache Beam 在 GCP DataflowRunner 上没有名为“IPython”的模块

ipython notebook pandas max 允许的列数

如何防止PyCharm覆盖matplotlib中设置的默认后端?

如何在情节主题中设置宽度和高度?