83

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 3

105
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
Sign up to request clarification or add additional context in comments.

5 Comments

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 :/
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.])
Thanks, I will investigate this way so. I just need to turn interactive plotting on now in my FigureCanvas :)
is fig.get_size_inches()*fig.dpi width or height?
@JosephGarvin both: fig_width, fig_height = plt.gcf().get_size_inches()
16

Maybe this animation might help: enter image description here

enter image description here

3 Comments

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.
I think it would be useful and pretty cool if you put code.
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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.