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:
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
andylabel
. - combines with
set_size_inches
function - seeks to ensure consistent text size with differing figure sizes.
- seeks to find out why Ipython output differs from savefig