在matplotlib中更改图形大小

3

看起来 figsize 选项只改变高度和宽度之间的比例。至少在使用 jupyter notebooks 时是这样的。下面是一个示例:

import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np

plt.figure(figsize=(16,8))
plt.plot(np.arange(1,10),np.arange(1,10))
plt.show()
plt.figure(figsize=(24,6))
plt.plot(np.arange(1,10),np.arange(1,10))
plt.show()

我希望 figsize 表示英寸而非相对比例。在 Python / Jupyter 笔记本中如何强制执行此设置?
3个回答

3
如果您使用较大的figsize,比如figsize=(50, 5),您会注意到与正常尺寸绘图相比,线条、标签和所有内容都异常细小。

这是因为您使用的宽度与输出单元格的宽度不兼容,因此笔记本只能缩小图像以适应输出单元格。

要实现所需的行为,需要在输出单元格中启用水平滚动功能。我不知道哪个`nbextension`可以在输出单元格中启用水平滚动。

经过一些试验,发现使用nbagg后端

%matplotlib nbagg

给你一个滚动输出单元格,以及一个交互式单元格,位于笔记本内部,可能正是你想要的。
附录

我在IPython的GitHub上发现了这个问题,请求在输出单元格中实现水平滚动 —— 正如你所看到的,它的日期是2012年,没有任何后续行动。


1
plt.gcf().set_size_inches(16, 8)

很抱歉,在jupyter笔记本中,这与上面的figsize选项没有任何区别。它只是改变了比例。 - sachinruk

0

在更改figsize后,当参数在一定范围内时,图形大小确实发生了变化。在我的情况下,尺寸在(24,8)以上时不会增长。当它仍然在范围之下时,尺寸确实会增加。它基于您的显示器dpi,您可以在figure中设置dpi,但最终取决于您的硬件。 matplotlib.figure.figaspect设置了figaspect。

如果您将图形保存到文件,请使用savefig,您也会看到图像大小增加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接