And I don't think passing the xlabel and ylabel objects is the right choice here... what I'd envisioned for this exporter is to pass sufficient data to render the plot, and for 99% of the cases, have no need to dig into the internals of matplotlib objects (which, as you've discovered, is not too fun).  Perhaps finding a way to pass the label styles would be better.

Actually, the only reason I'm passing the xlabel and ylabel at all (as opposed to just calling draw_text() on the appropriate objects to begin with) is because Peter Wang told me that he wanted labels to be treated specially.  Perhaps this is not worth it, and we should just call draw_text() on them instead...