Skip to content

Instantly share code, notes, and snippets.

@mwadams
Created April 4, 2013 10:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mwadams/5309248 to your computer and use it in GitHub Desktop.
Save mwadams/5309248 to your computer and use it in GitHub Desktop.
Features for Endjin's charting PoC
Endjin's 2D Charting Tool
Summary of features as of 19/11/2012
====================================
Supported platforms:
WinRT, WPF, Silverlight 5, Windows Phone 8: Identical XAML, identical features and near-identical rendering.
Chart types:
Line, Area, Curve, Area-under-curve, Pie, Donut, Scatter, Bubble, Bar, Histogram, Radar, Range
Multiple chart areas of different types on a chart Style individual series on a chart - line, fill, point labels, including custom format strings
Optional point-markers, scalable, fixed-size or data-driven, including Square, Circle, Lozenge, Triangle, Inverted Triangle. You can easily build your own.
Hit testing on points in series. gives point, series, series index, point index, supports touch
RenderInfo for each chart area available, giving scale, offsets, visible ranges allowing you to transform to/from the render and data coordinate spaces
MinorTickCount: Ability to specify a minor tick count between major ticks Gridlines (from major ticks), stroke/alternating fill colors.
Data:
Supports dates, integers, and floating point data, plus labels for series and points
Encourages data-driven charting - example data adapters for Stacked and Stacked-to-100% (with built in support for stacking with all appropriate chart types)
Supports LINQ projections into chart series
Optimized updates for changing data.
Axes:
Multiple fixed and floating axes can all be controlled independently
Automatic, manual, or semi-manual axis range detection
Ability to ensure that zero is always within the range
Customizable axis label format
Axis color/stroke, tick length, ticks, frequency, count
Axis label rotation
Annotations:
Add arbitrary annotations at any point on a chart area (including points not in the main series)
Supports binding to a view model associated with a datapoint, with AnnotationContentTemplate and AnnotationContentTemplateSelector so you can render arbitrary visuals/interactions
Zoom & Scroll:
Ability to zoom and scroll around arbitrary X/Y subsets of the data
Automatic axis positioning while zooming (if floating, picks floating/anchored based on current minima/maxima in visible region)
Supports touch
Trendlines:
Ability to add y = mx + c or x = c trendlines to the graph, with Stroke, StrokeThickness and DashArray.
(Clearly, additional chart areas or annotations could be used for alternative trend lines)
Error bars:
Ability to add high/low error bars to y-axis values
Highlighting and selection:
Supports automatic and manual highlighting and selection
Performance:
Encourages clean, simple presentation of data (although you can go mad with the styling if you want)
Minimizes the number of visuals in the tree
Additional features in progress:
============================================
Candlestick chart type
Features considered for the V Next:
================================
Print/render to PDF/vector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment