the problem being that this will only set the property of

    > the first 'n' labels, where 'n' is the number of tickmarks
    > present when you initially set the property. So if the
    > number of tick marks increases when zooming in (or out),
    > then the remaining labels above 'n' will not have the
    > property set. You can see this by running the example
    > script "" and rotating the labels (as above)
    > and then zooming in and out until you have more than the
    > initial number of ticks.

Hmm, this shouldn't happen. There is logic in the axis class when
creating a new tick to copy the properties of the existing ticks.
There is a "protoTick" ie the prototype tick, which is used to get the
properties when creating a new tick. The Axis._copy_tick_props method
is used to transfer the properties from the protoTick to the new tick.
That in turn calls the "update_from" method of the text instances,
which does copy the rotation value.

So it *should* work on a quick code read, but clearly it doesn't from
your reported problem. You may want to poke around this section of
the code to see where the logic is failing.