Matplotlib subplots_adjust hspace so titles and xlabels don't overlap ?

Posted by Denis on Stack Overflow See other posts from Stack Overflow or by Denis
Published on 2010-03-10T15:32:03Z Indexed on 2010/03/25 14:53 UTC
Read the original article Hit count: 500

Filed under:
|

With say 3 rows of subplots in matplotlib, xlabels of one row can overlap the title of the next;
one has to fiddle with pl.subplots_adjust( hspace ), annoying.
Is there a recipe for hspace that prevents overlaps and works for any nrow ?

""" matplotlib xlabels overlap titles ? """
import sys
import numpy as np
import pylab as pl

nrow = 3
hspace = .4  # of plot height, titles and xlabels both fall within this ??
exec "\n".join( sys.argv[1:] )  # nrow= ...

y = np.arange(10)
pl.subplots_adjust( hspace=hspace )

for jrow in range( 1, nrow+1 ):
    pl.subplot( nrow, 1, jrow )
    pl.plot( y**jrow )
    pl.title( 5 * ("title %d " % jrow) )
    pl.xlabel( 5 * ("xlabel %d " % jrow) )

pl.show()

My versions: matplotlib 0.99.1.1, python 2.6.4, Mac osx 10.4.11,
backend: Qt4Agg (TkAgg => Exception in Tkinter callback)

(For many extra points, can anyone outline how matplotlib's packer / spacer works, along the lines of chapter 17 "the packer" in the Tcl/Tk book ?)

© Stack Overflow or respective owner

Related posts about matplotlib

Related posts about pylab