Matplotlib Figsize 不受尊重

mir*_*oli 2 python matplotlib

我想用 matplotlib 绘制一个正方形图。也就是说,我希望整个图形是正方形的。当我使用以下代码时,生成的图像的宽度仍然比高度大一点。为什么 matplotlib 不尊重我提供的 Figsize?

import matplotlib.pyplot as plt 
fig, ax = plt.subplots(figsize=(10, 10))

# When inspecting in browser, reveals 611x580 px image
ax.plot([1,2,3], [1,2,3])
Run Code Online (Sandbox Code Playgroud)

编辑:我在 Jupyter 笔记本中内联显示图像,然后仅使用 Chrome 开发人员工具来检查图像。

Imp*_*est 5

这是jupyter笔记本的问题。它显示的图是“保存”版本,它使用该bbox_inches="tight"选项,因此更改了显示图像的大小。

您的一种选择是将图形手动保存为 png,

fig.savefig("output.png")
Run Code Online (Sandbox Code Playgroud)

正如 @EvgenyPogrebnyak 评论的那样,另一个选项是停用"tight"笔记本中的选项:

%matplotlib inline
%config InlineBackend.print_figure_kwargs = {'bbox_inches':None}
fig, ax = plt.subplots(figsize=(10, 10))

# When inspecting in browser, 
ax.plot([1,2,3], [1,2,3])  # now reveals 720 x 720 px image
Run Code Online (Sandbox Code Playgroud)

正如这个答案中所见。