Project DescriptionOxyPlot is an open source, cross-platform .NET plotting library.
NuGet packages (updated at every code check-in)
Alpha versions (build yourself from source code)
| Metro | Some work left on the custom control. |
| MonoTouch | |
| Mono for Android | Only tested on emulator. |
News
- Mono for Android implementation, (May 11, 2012)
- New BoxPlotSeries (April 12, 2012)
- MonoTouch implementation, submitted by dvkwong (March 12, 2012)
- Changed to Mercurial (March 3, 2012)
- The project is built at CodeBetter (Dec 12, 2011)
- Continuous integration with TeamCity. Runs NUnit, dotCover, DuplicatesFinder and has automatic push of Nuget packages (Nov 13, 2011)
- NuGet packages: Wpf / Silverlight (March 9, 2011)
- Example Browser (available for both WPF, Silverlight and WinForms. All sharing the same examples) (March 19, 2011)
Project roadmap 2012
- Close high priority issues
- Improve documentation
- Increase unit test coverage
Features
- Cartesian and polar coordinate systems
- Series
- LineSeries
- TwoColorLineSeries
- ScatterSeries
- AreaSeries
- ContourSeries
- BoxPlotSeries (submitted by benjaminrupp)
- StemSeries
- StairStepSeries
- HighLowSeries
- CandleStickSeries
- BarSeries
- ColumnSeries
- ErrorColumnSeries
- IntervalBarSeries
- RectangleBarSeries
- TornadoBarSeries
- PieSeries
- Axis types
- Linear
- Logarithmic
- DateTime
- TimeSpan
- Category
- Annotations
- Controls
- WPF (supports XAML databinding)
- Silverlight
- Windows Forms
- Metro (alpha)
- Output
- Easy to add support for other output devices (just implement simple methods like DrawPolyline, DrawPolygon, DrawEllipse and DrawText)
- Easy to extend with custom Series or Axis types
- High performance (supports large datasets, only draws data that is visible)
- 'Scientific' style (as plots from Mathematica/Matlab)
- Mathematical notation of exponents (superscript and subscript, but this currently only works for horizontal text)
- Spline interpolation
- Pan/zoom (use middle and right mouse button or the mouse wheel, double-click to reset)
- "Tracker" function - showing values when you push down the left mouse button on a curve
- A simple report generator is included (output to pdf, rtf, html5, docx and LaTeX)
Mouse/keyboard input(LMB = Left mouse button, RMB = Right mouse button)
| Action | WPF | Silverlight | Winforms |
| Pan* | RMB | Alt+LMB | RMB |
| Zoom* | Mouse wheel | Mouse wheel | Mouse wheel |
| Zoom by rectangle | Ctrl+RMB | Ctrl+Alt+LMB | Ctrl+RMB |
| Reset* | RMB double-click | Alt+LMB double-click | RMB double-click |
| Show 'tracker' | LMB | LMB | LMB |
| Reset axes | 'A' | 'A' | 'A' |
| Copy bitmap | Ctrl+C | | Ctrl+C |
| Copy code | Ctrl+Alt+C | Ctrl+Alt+C | Ctrl+Alt+C |
| Copy properties | Ctrl+Alt+R | Ctrl+Alt+R | Ctrl+Alt+R |
* You can zoom/pan/reset a single axis by positioning the mouse cursor over the axis before starting the zoom/pan.
How to use it in WPF
- Add references to OxyPlot.dll and OxyPlot.wpf.dll in your application (also available from NuGet)
- Create a PlotModel in your ViewModel
- Create a Plot control in XAML and bind the Model property to your PlotModel
How to use it in Silverlight
- Add references to OxyPlot.dll and OxyPlot.Silverlight.dll in your application (also available from NuGet)
- Create a PlotModel in your ViewModel
- Create a Plot control in XAML and bind the Model property to your PlotModel
ExamplesExample Browser (Silverlight)
WPF example 1 (binding to a PlotModel)
WPF example 2 (binding to data)
Export to SVGRequirements
- .NET 4.0 / SL 4.0
- Visual Studio 2010
Would you like to contribute?
- Improve architecture?
- Improve the code?
- Add examples?
- Find bugs / submit patches?
- Improve documentation/xml comments?
- Write unit tests?
LinksJFreeChartMjoGraphPLplotMatlabMathematicamatplotlibGnuPlotRGraphzedgraphGoogle ChartsHighChartsDynamic data displayWPF Toolkit chartsSilverlight ToolkitVisiblox chartsSciChartVisifireMindscapeDevExpressChartFXInfragisticsTelerikamChartsDundasChartControlSyncfusionWriting More Efficient ItemsControlsBooks and documentsPractical WPF Charts and Graphics googlePractical C# Charts and Graphics googleThe Visual Display of Quantitative Information (Edward Tufte)
google amazon tutorialPerceptual edgeShow me the numbers (Stephen Few)
amazon googlePerformance comparisonsCharting performance comparisonOxyPlot version of the same test