How to get matplotlib figure size
Asked Answered
H

3

79

For a project, I need to know the current size (in pixels) of my matplotlib figure, but I can't find how to do this. Does anyone know how to do this ?

Handsel answered 17/4, 2015 at 14:45 Comment(0)
S
99
import matplotlib.plt
fig = plt.figure()
size = fig.get_size_inches()*fig.dpi # size in pixels

To do it for the current figure,

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

You can get the same info by doing:

bbox = fig.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
width, height = bbox.width*fig.dpi, bbox.height*fig.dpi
Shingly answered 17/4, 2015 at 14:52 Comment(5)
Thank you, it gives me the size of the figure when first plotted I think, but it does not actualize if I change the size of my window and re draw my figure :/Handsel
it does for me. I first turned interactive plotting on plt.ion(). I created a figure fig. size = fig.get_size_inches()*fig.dpi returned array([ 640., 480.]). I resized it and recalculated the size and got array([ 704., 270.])Shingly
Thanks, I will investigate this way so. I just need to turn interactive plotting on now in my FigureCanvas :)Handsel
is fig.get_size_inches()*fig.dpi width or height?Bulbul
@JosephGarvin both: fig_width, fig_height = plt.gcf().get_size_inches()Sajovich
Q
13

Maybe this animation might help: enter image description here

enter image description here

Quondam answered 6/11, 2020 at 12:11 Comment(3)
It should only illustrate the connection between dpi and figure_size, as an addition to the already good answer from Julien Spronck, however, If you don't find this useful, I can also remove this answer again.Quondam
I think it would be useful and pretty cool if you put code.Sajovich
here is the code: manimplotlib.readthedocs.io/en/latest/manimplotlib4.htmlQuondam
S
11

Quickly extract figure size in inches

To get width and height in inches I just use:

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

I put this here because this question is the first result that pops up when you search 'get matplotlib figure size', and the api most naturally works in inches, not pixels.

Sajovich answered 28/1, 2021 at 15:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.