FSharp.Charting: The F# Charting Library

The FSharp.Charting library implements charting suitable for use from F# scripting.

Install FSharp.Charting using NuGet. Run this in the Package Manager Console:
PM> Install-Package FSharp.Charting
Then reference the 'FSharp.Charting.fsx' script in the package.
Install FSharp.Charting.Gtk using NuGet on OSX. Run this in the Package Manager Console:
PM> Install-Package FSharp.Charting.Gtk
Then reference the 'FSharp.Charting.Gtk.fsx' script in the package.

Alternatively, you can download the source as a ZIP file or as a binary release as a ZIP file.


  • 2D charting.
  • Many cross-platform chart types: Area, Bar, Bubble, Column, Line, Point and more.
  • Create charts directly from F# data.
  • Use either fluent or pipelined chart specifications.
  • Create updating 'LiveChart' charts from F# or Rx observables.
  • Can be used in conjunction with the FSharp.Data library.

Extra Features (Windows-only)

  • Many extra chart types (windows): BoxPlot, Candlestick, Doughnut, ErrorBar, FastLine, FastPoint, Funnel, Kagi and more.
  • Pseudo-3D charting.


The documentation is automatically generated from *.fsx files in the examples folder. If you find a typo, please submit a pull request!

Previous Versions

This library is a successor to 'FSharpChart'. The last version of 'FSharpChart' was version 0.61.


The project is hosted on GitHub where you can report issues, fork the project and submit pull requests. If you're adding new public API, please also contribute examples that can be turned into a documentation.

  • If you want to discuss an issue or feature that you want to add the to the library, then you can submit an issue or feature request via Github or you can send an email to the F# open source mailing list.

  • For more information about the library architecture, organization and more see the contributing page.

Library philosophy

FSharp.Charting uses simple, declarative chart specifications.

On Windows, FSharp.Charting is implemented using the Data Visualization charting controls available on Windows in .NET 4.x.

On OSX, FSharp.Charting is implemented using the OxyPlot.GtkSharp charting library.

Library future

FSharp.Charting is designed so that the same charting specifications can be supported when using different charting implementations. For example, the Try F# charts use similar charting specifications, implemented using in HTML5 using Dojo Charts.

The next step we would like to try is to implement cross-platform Javascript-based charting using embedded browser controls.

Another direction of interest is to bind to charting controls usable by ASP.NET.

Library license

The library is available under the MIT licence. For more information see the License file in the GitHub repository. In summary, this means that you can use the library for commercial purposes, fork it, modify it as you wish.

Fork me on GitHub