如何获取 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()
上开启了交互式绘图功能。我创建了一个图fig
。 size = 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 图形大小的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ipython 笔记本中设置 matplotlib 图形默认大小?