Changing the tick label font family

Sorry, another really basic matplotlib question ... how do

    > I set the font family of the axis tick labels? I am using
    > wxPython/wxMpl and not the pylab interface so am trying to
    > avoid getp/setp. I could do this using matplotlib.rc but
    > want to do it programatically

    > I tried

    > fig=self.get_figure() ax1=fig.gca() ax1.plot(x,y)
    > xt=ax1.get_xticklabels() d = { 'family' : 'sans-serif' }
    > ax1.set_xticklabels(xt, d)

    > But Python goes haywire ... There has to be a simpler way
    > but not found it yet.

I'd like to deprecate font dictionaries in the sense you are using
them here. I implemented them before I fully understood python kwarg
processing. You can do everything with kwargs that you can do with
dictionaries (since kwargs are dictionaries) so it is redundant and
less pythonic. Since you are using the API, I suggest something like

for tick in ax1.xaxis.get_major_ticks():
     tick.label1.set_family('sans-serif')

and ditto for the minor ticks if you need them. Also, since mpl
supports left/right or top/bottom ticking, if you are using these you
will also want to set the properties of tick.label2.

    > I am trying to do the same for the legend properties. So
    > far we have

    > p=matplotlib.font_manager.FontProperties()
    > p.set_family('sans-serif') p.set_size('small')
    > fig.legend(lines, titles, 'upper right', prop=p)

    > but this looks fairly cludgy - is there a more elegant way
    > of doing the same thing?

I think this is elegant and not cludgy, so maybe I'm not the best one
to answer this.

JDH