-
Notifications
You must be signed in to change notification settings - Fork 981
Description
The bar plot class does many things (see cookbook), but it's very difficult to customize beyond the styling features that are baked in. For example you can have two colors to indicate bars with positive/negative values, but you cannot have more colors to represent additional ranges, and you cannot customize borders or hatch styles on a per-bar basis. It is also not easy to define bar widths, and they cannot be individually customized.
Improved customization/styling may be offered by a BarSeries plot type which simply displays a List<Bar>, where each Bar has fields for position, width, top, bottom, color, border, error bars, hatch options, etc.
To allow ultimate customization, Bar could implement an IBar interface which has methods like Render() and GetAxisLimits(). This would let advanced users build their own Bar classes with special rendering features and Add() them to the BarSeries directly. This architecture would allow for different bar classes like RectangularBar, LolipopBar, and ClevelandBar which all know how to draw themselves.