我想用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])
编辑:我在Jupyter笔记本中内嵌显示图像,只是使用Chrome开发人员工具来检查图像。
答案 0 :(得分:1)
那是jupyter笔记本电脑的问题。它显示的图是“保存的”版本,它使用bbox_inches="tight"
选项,因此更改了所显示图像的大小。
您可以选择的一种方法是将图形手动保存为png
fig.savefig("output.png")
正如@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
如this answer中所示。