Hi everyone,
It started innocently. I was porting an old app to Objo and needed one bar chart with rotated labels. Then the labels wanted values inside the bars. Then the bars wanted to be stacked. Then someone said "radar chart", and I stopped sleeping. ๐
The result is ChartView: a single, self-contained Canvas subclass with 30 chart types. No plugins, no dependencies, no native code. Copy one class into your project and you're done.
What's in the box:
Bars: grouped, stacked, 100 %, horizontal (all three). Values inside the bars, labels rotated when they don't fit.
Lines and areas: plain, smooth, stacked, 100 %.
The serious stuff: combo with a second axis, Pareto with the 80 % line (your quality manager will cry tears of joy), heatmap.
Round things: pie, doughnut, polar and spiral in three flavours each. Hit-testing is pixel-exact on every wedge, because I couldn't live with a tooltip that "roughly" knows where you are.
Funnel and pyramid: for when management wants to see the sales funnel and the org chart in the same meeting.
Scatter and bubble: bubble area is proportional to the value, so your 1.4 billion bubble finally looks as big as it should.
Candlestick, HLOC and Gantt, with a real date axis. Now you can watch your project deadline and your share price drop in the same window.
Radar: because some things can only be explained with a spider web.
And everything works everywhere:
tooltips on hover, fully styleable (colour, font, corners)
a SeriesClicked event
legends, subtitles, axis titles, German or English number formats
printing and PDF as vector graphics: zoom in to 6400 % and it's still sharp.
Usage is boring (in a good way):
Var chart As New ChartView
chart.Kind = ChartView.KindPareto
chart.Title = "Why we keep repainting things"
chart.SetLabels(["Pimples", "Scratches", "Dust", "Dents"])
chart.AddSeries("Failures", [191, 132, 45, 12])
Self.Add(chart)
That's it. It sorts, adds up, draws the cumulative line and makes you look clever.
License: free for private, educational and non-commercial use. ๐
If you want to use it in a commercial app (you know who you are ๐), just send me a private message here in the forum, and we'll sort out a small commercial license. No lawyers, no paperwork, promise.
And if you simply like it: a quick "thanks" or a screenshot of ChartView in your app makes my day just as much. ๐
Feedback, bug reports and "can it also do X?" are very welcome.
Cheers
Guido (Madru)






