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 ?
How to get matplotlib figure size
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
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 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.html –
Quondam
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.
© 2022 - 2024 — McMap. All rights reserved.