在matplotlib中更改figsize

时间:2016-05-25 01:29:18

标签: python matplotlib jupyter-notebook

似乎figsize选项只改变高度与宽度的比例。至少在使用jupyter笔记本时就是这种情况。这是一个例子:

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()

我希望无意中计算出英寸,而不是相对比率。你会如何在python / jupyter笔记本中强制执行它。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

设置

如果使用savefig将数字保存到文件中,您还会看到图像尺寸也会增加。

答案 2 :(得分:0)

如果您使用较大的figsize,比如figsize=(50, 5),您会注意到线条,标签,相对于正常尺寸的地图,所有内容都非常薄且很小。

这是因为您使用的宽度与输出单元格的宽度不兼容 而笔记本只是缩小图形以使其适合输出单元格。

<德尔> 要获得您要求的行为,您需要输出单元格中的水平滚动功能。我不知道可以在输出单元格中启用水平滚动的`nbextension`。

经过一些实验后,它看起来像是使用nbagg后端

%matplotlib nbagg

在笔记本内部为您提供了一个可滚动的输出单元格和一个交互式输出单元格,可能是您想要的。

附录

我在IPython的github上找到了this issue,请求在输出单元格中进行水平滚动 - 正如你所看到的那样,它的日期是2012年,没有后续的排序。