如何获取 matplotlib 图形大小

Posted

技术标签:

【中文标题】如何获取 matplotlib 图形大小【英文标题】:How to get matplotlib figure size 【发布时间】:2015-06-24 11:52:50 【问题描述】:

对于一个项目,我需要知道我的 matplotlib 图形的当前大小(以像素为单位),但我找不到如何做到这一点。 有谁知道怎么做?

【问题讨论】:

【参考方案1】:
import matplotlib.plt
fig = plt.figure()
size = fig.get_size_inches()*fig.dpi # size in pixels

为当前的人物做这件事,

fig = plt.gcf()
size = fig.get_size_inches()*fig.dpi # size in pixels

您可以通过以下方式获得相同的信息:

bbox = fig.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
width, height = bbox.width*fig.dpi, bbox.height*fig.dpi

【讨论】:

谢谢,我认为它在第一次绘制时给了我图形的大小,但是如果我更改窗口的大小并重新绘制我的图形,它不会实现:/ 对我有用。我首先在plt.ion() 上开启了交互式绘图功能。我创建了一个图figsize = fig.get_size_inches()*fig.dpi 返回array([ 640., 480.])。我调整了它的大小并重新计算了大小并得到了array([ 704., 270.]) 谢谢,我会这样调查的。我现在只需要在我的 FigureCanvas 中打开交互式绘图 :) fig.get_size_inches()*fig.dpi 宽度还是高度? @JosephGarvin 两者:fig_width, fig_height = plt.gcf().get_size_inches()【参考方案2】:

也许这个动画可能会有所帮助:

【讨论】:

它应该只说明 dpi 和 figure_size 之间的联系,作为 Julien Spronck 已经很好的答案的补充,但是,如果你觉得这没有用,我也可以再次删除这个答案。 我觉得如果你放代码会很有用也很酷。【参考方案3】:

快速提取以英寸为单位的图形尺寸

要获得以英寸为单位的宽度和高度,我只需使用:

fig_width, fig_height = plt.gcf().get_size_inches()
print(fig_width, fig_height)

我把它放在这里是因为这个问题是您搜索“获取 matplotlib 图形大小”时弹出的第一个结果,并且 api 最自然地以英寸而不是像素为单位。

【讨论】:

以上是关于如何获取 matplotlib 图形大小的主要内容,如果未能解决你的问题,请参考以下文章

如何更改使用 Matplotlib 绘制的图形的大小?

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

如何使用 matplotlib 调整子图中的图形大小

如何让 Matplotlib 图形在 Tkinter GUI 中正确滚动+调整大小

matplotlib可视化之如何给图形添加数据标签?

三维坐标系下,python如何获取鼠标点击事件,返回三维坐标x,y,z?