matplotlib

Hi John, I'm CC-ing this response to the matplotlib users list

    > Dear John, I'm a long-time IDL user who is growing
    > increasingly attached to matplotlib. One thing is quite a

On the subject of IDL, if you haven't seen it already, you may be
interested in the IDL cheatsheet for ipython/numerix/matplotlib users
in the appendix of this tutorial
http://www.scipy.org/wikis/topical_software/Tutorial

    > bother, however, when it comes to preparing publication
    > quality plots. When the font size is increased to the size
    > needed for the shrinkage that a publication quality plot
    > typically undergoes, the bottom y-axis tick numbering often
    > either hits or is too close to the first x-axis tick label.
    > IDL takes care of this by having the bottom y-axis tick
    > label baseline aligned to the bottom of the plot box, and
    > the top y-axis tick label aligned so that the top of the
    > numbers barely rise above the top of the plot box. The
    > remaining tick labels are aligned on the tick location. Is
    > something like this possible in matplotlib?

This FAQ has some relevant info:
http://matplotlib.sourceforge.net/faq.html#TEXTOVERLAP, which I'll
supplement here.

You can manually set the vertical position of the xicklabels and the
horizontal position of the yticklabels with relative ease. These
positions are in "axes coordinates" where 0,0 is the bottom left of
the Axes rectangle and 1,1 is the top right. So you need negative
numbers to position the xticklabels below the axes and yticklabels to
the left. In pylab, you can set the text properties of the
xticklabels by passing keyword arguments to the "xticks" function

  xticks(fontsize=20, y=-0.05)

Ditto for the yticks

  yticks(fontsize=20, x=-0.05)

If you are using the matplotlib API, you can first get a list of the
tick labels and then apply setp to them

  from matplotlib.artist import setp
  setp( ax.get_xticklabels(), fontsize=20, y=-0.05)

JDH