For my application, I have to display a large amount of data very fast so I had to make the following changes:
1-Added a CustomDraw event in the draw method of Line
2-Added a lock on the PointPairList Count property (Count is locked while new PointPairs are added by another thread)
3-Added a static method in Scale to transform a full IPointList. Does the same as transform X and Y for each point but only tests once the reverse properties. (Which is faster with a large amount of data)
4-Exit directly in the Draw method of Symbols if Symbols are not visible
5-Do not display "BC" if year of XDate is negative: I needed to display a TimeSpan not a date
6-Added method to call AxisChange in the OnPaint method of the ZedGraphControl. Points are added by another thread and I only want to recalculate the thread when the graph is about to be redrawn so a flag is set each time a point is added to force a call to AxisChange by the next redraw.
based on version 5.1.5