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 ?
3 Answers
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
5 Comments
Tristan
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 :/
Julien Spronck
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.])Tristan
Thanks, I will investigate this way so. I just need to turn interactive plotting on now in my FigureCanvas :)
Joseph Garvin
is
fig.get_size_inches()*fig.dpi width or height?eric
@JosephGarvin both:
fig_width, fig_height = plt.gcf().get_size_inches()3 Comments
Kolibril
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.
eric
I think it would be useful and pretty cool if you put code.
Kolibril
here is the code: manimplotlib.readthedocs.io/en/latest/manimplotlib4.html
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.

