matplotlib savefig - text chopped off

Viewed 37394

Say I create a plot:

import matplotlib.pyplot as plt
plt.clf()
import numpy as np
props = np.random.randint(0,100,(200,))
x=np.arange(1,201,1)
plt.plot(x,props,c='k')
plt.xlabel('blah blah blah blah blah blah\n blah blah blah blah blah')
plt.ylabel('blah blah blah blah blah blah blah blah blah')
fig=plt.gcf()
fig.set_size_inches(3.75,3.75)#14, 23)
plt.savefig('testfig.png',dpi=300)

When using Ipython (via Spyder), the plot presents ok. However when I looked at the saved image, it presents thus:

enter image description here

As you can see, the text is cut off. What is recommended practice for dealing with this?

I have got round it by increasing the figure size, and re-sizing afterwards. However, my aim is to produce a set of images with a consistent text size (figure size varies); so this approach is not ideal.

Note. Whilst a similar question exists, this question is distinct in that it:

  • deals with both xlabel and ylabel.
  • combines with set_size_inchesfunction
  • seeks to ensure consistent text size with differing figure sizes.
  • seeks to find out why Ipython output differs from savefig
3 Answers
Related