79 people following this project (follow)

Project Description
OxyPlot is an open source, cross-platform .NET plotting library.

NuGet packages (updated at every code check-in)
WPFhttp://nuget.org/List/Packages/OxyPlot.Wpf
Silverlight http://nuget.org/List/Packages/OxyPlot.Silverlight
Windows Forms http://nuget.org/List/Packages/OxyPlot.WindowsForms

Alpha versions (build yourself from source code)
Metro Some work left on the custom control.
MonoTouch
Mono for Android Only tested on emulator.

oxyplot1.png

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
    • Lines
  • 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

Examples
Example Browser (Silverlight)
WPF example 1 (binding to a PlotModel)
WPF example 2 (binding to data)
Export to SVG

Requirements
  • .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?

Links
JFreeChart
MjoGraph
PLplot
Matlab
Mathematica
matplotlib
GnuPlot
RGraph
zedgraph
Google Charts
HighCharts

Dynamic data display
WPF Toolkit charts
Silverlight Toolkit

Visiblox charts
SciChart
Visifire
Mindscape
DevExpress
ChartFX
Infragistics
Telerik
amCharts
Dundas
ChartControl
Syncfusion

Writing More Efficient ItemsControls

Books and documents
Practical WPF Charts and Graphics google
Practical C# Charts and Graphics google
The Visual Display of Quantitative Information (Edward Tufte) google amazon tutorial
Perceptual edge
Show me the numbers (Stephen Few) amazon google


Performance comparisons
Charting performance comparison
OxyPlot version of the same test

You need to install Microsoft Silverlight to view this content. Get Silverlight!
Get Microsoft Silverlight




Last edited Mon at 6:42 PM by objo, version 119