in the class "axis", in the "drawlabel" method, this what
can be found:
(L 954)
g.TranslateTransform( offset.X , offset.Y ); // this is done
last.
g.TranslateTransform( average.X, average.Y );
g.RotateTransform( (float)theta ); // this is done first.
(L 986)
g.TranslateTransform
you make some changes in the coordinate system of
the graphics g, and reset the transform.
but i use a preview control (not the microsoft one) that
also does transform to the graphics, so when i draw the
plot, the graphics is changed, compared to what it was
before the axis.drawlabel is called.
i replaced the g.TranslateTransform by the inversion of
modification you made to the graphics:
g.RotateTransform( (float)-theta );
g.TranslateTransform( -average.X, -average.Y );
g.TranslateTransform( -offset.X , -offset.Y );
so, the graphics returns to its previous state. the plot is
well drawn and my graphics is still the same.
i hope this can help you.