I'm trying to create figures in matplotlib
that read nicely in a journal article. I have some larger figures (with subfigures) that I'd like to take up nearly an entire page in portrait mode (specifically, 6.5"x9" for a full-page figure with 1" margins on US letter paper). I can set the figure size easily with the figsize
parameter. However, the figure is compressed if I set the figure size to be larger than my screen size (I'm working on a 13" laptop); specifically, the height is an issue. The dimensions of the saved figure do not change as long as the height
parameter below is larger than the height of my screen:
height = 9
fig, ax = plt.subplots(3, 2, figsize=(6.5, height))
plt.savefig('test.png') # size of this figure is independent of height
# if height > height of my screen
How can I make matplotlib
use the requested figure size even when it exceeds my screen's dimensions? I'm using spyder.
This is likely an issue with your backend for plot generation.
You can see what backend you are using by running:
import matplotlib; matplotlib.get_backend()
Try changing the backend to something else, for example:
import matplotlib
matplotlib.use('Agg')
Note that this has to be run before importing matplotlib.pyplot
.