Plotly.NET 2.0.0

.NET Standard 2.0
Install-Package Plotly.NET -Version 2.0.0
dotnet add package Plotly.NET --version 2.0.0
<PackageReference Include="Plotly.NET" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Plotly.NET --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Plotly.NET, 2.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Plotly.NET as a Cake Addin
#addin nuget:?package=Plotly.NET&version=2.0.0

// Install Plotly.NET as a Cake Tool
#tool nuget:?package=Plotly.NET&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

plotly.js charts in .NET programming languages 📈🚀.

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (11)

Showing the top 5 NuGet packages that depend on Plotly.NET:

Package Downloads

A .NET Interactive Kernel Extension for displaying Plotly.NET charts.


An easily extensible library to render static images from Plotly.NET charts.


Package Description


Data visualization for bioinformatic purposes

AngouriMath.Interactive The ID prefix of this package has been reserved for one of the owners of this package by

Wrapper of AngouriMath for Jupyter Interactive.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Plotly.NET:

Repository Stars
Open-source cross-platform symbolic algebra library for C# and F#. One of the most powerful in .NET. Can be used for both production and research purposes.
Version Downloads Last updated
2.0.0 656 4/28/2022
2.0.0-preview.18 999 3/4/2022
2.0.0-preview.17 3,007 2/8/2022
2.0.0-preview.16 2,892 11/27/2021
2.0.0-preview.15 1,880 11/16/2021
2.0.0-preview.14 108 11/12/2021
2.0.0-preview.13 76 11/12/2021
2.0.0-preview.12 426 11/8/2021
2.0.0-preview.11 181 11/4/2021
2.0.0-preview.10 384 10/11/2021
2.0.0-preview.9 526 9/30/2021
2.0.0-preview.8 12,502 9/16/2021
2.0.0-preview.7 387 8/26/2021
2.0.0-preview.6 3,030 7/12/2021
2.0.0-preview.5 150 7/7/2021
2.0.0-preview.4 220 6/22/2021
2.0.0-preview.3 273 6/16/2021
2.0.0-preview.2 537 6/3/2021
2.0.0-preview.1 393 5/31/2021
2.0.0-beta9 545 5/3/2021
2.0.0-beta8 687 3/28/2021
2.0.0-beta7 506 3/20/2021
2.0.0-beta6 969 2/15/2021
2.0.0-beta5 739 1/22/2021
2.0.0-beta4 130 1/22/2021
2.0.0-beta3 153 1/18/2021
2.0.0-beta2 101 1/18/2021
2.0.0-beta1 162 1/15/2021
2.0.0-beta 155 1/15/2021
2.0.0-alpha5 867 12/11/2020
2.0.0-alpha4 135 12/10/2020
2.0.0-alpha3 414 9/22/2020
2.0.0-alpha2 1,099 9/18/2020

Plotly.NET finally has reached all milestones for 2.0 and is ready for a stable release.
This release is the culmination of almost **2 years of work in >500 commits by 17 contributors**.
Here is an attempt to visualize the history of these changes in a few seconds:
(made with [gource](
All APIs have changed significantly - this release is incompatible with 1.x and many 2.x-preview/beta versions.
- All plotly chart/trace types!
- Unified API!
- chart rendering in notebooks!
- programmatic static image export!
- Exhaustive docs!
- We have a [discord server](, feel free to ask questions there!
Core library**
- The API layer model has refined and used for every type of plotly object abstraction. In brief,
- There are 5 main categories of abstractions: `Trace` (chart data and type), `Layout`(non-data chart styling), `Config`(render options), `DisplayOptions`(html display options), `StyleParam`(DSL for styling options)
- Many properties used in these levels are themselves objects, which are in the respective `*Objects` namespace (e.g. `Geo`, which determines map layout of geo traces is an object on the `Layout` and therefore in the `LaoutObjects` namespace.)
- every object is based on `DynamicObj` and its properties can therefore be further customised by dynamic member assignment. Therefore, every plotly property can be set manually, even those which do not have direct abstractions.
- There are now several `Trace` types for each kind of subplot (`Trace2D`, `Trace3D`, etc.) and eqivalent `Chart` types (`Chart2D`, `Chart3D`, etc). while not visible from the top level api (everything kan be accessed via the unified `Chart` API), this greatly improves correct multi chart layouting.
- There are 3 ways of creating charts with increasing level of customization:
1. The `Chart` API as a unified API surface for chart creation and styling
- `Chart.<ChartType>`  (e.g. `Chart.Point`) for chart creation from data and some chart specific styling options
- `Chart.with<Style or object>` (e.g. `Chart.withXAxisStyle`) for styling of chart objects
2. Creation of Chart objects by manually creating `Trace`, `Layout` and `Config` objects with many more optional customization parameters
3. Exclusive usage of `DynamicObj` - you can translate **any** plotly.js javascript with this method.
Chart/Trace abstractions**
You can create the following Charts with Plotly.NET's API (and many more by combining them):
- Cartesian 2D (`Chart2D`):
- `Scatter` (Point, Line, Spline, Bubble, Range, Area, SplineArea, StackedArea)
- `Funnel`
- `Waterfall`
- `Bar` (Bar, Column, StackedBar, StackedColumn)
- `Histogram`
- `Histogram2D`
- `Histogram2DContour`
- `PointDensity`
- `BoxPlot`
- `Violin`
- `Heatmap` (Heatmap, AnnotatedHeatmap)
- `Image`
- `Contour`
- `OHLC` (OHLC, CandleSticks)
- `Splom`
- Cartesian 3D (`Chart3D`):
- `Scatter3D` (Point3D, Line3D, Bubble3D)
- `Surface`
- `Mesh3D`
- `Cone`
- `StreamTube`
- `Volume`
- `IsoSurface`
- Polar (`ChartPolar`):
- `ScatterPolar` (PointPolar, LinePolar, SplinePolar, BubblePolar)
- `BarPolar`
- Maps (`ChartMap`):
- `ChoroplethMap`
- `ChoroplethMapbox`
- `ScatterGeo` (PointGeo, LineGeo, BubbleGeo)
- `ScatterMapbox` (PointMapbox, LineMapbox, BubbleMapbox)
- `DensityMapbox`
- Ternary (`ChartTernary`):
- `ScatterTernary` (PointTernary, LineTernary, SplineTernary, BubbleTernary)
- Carpet (`ChartCarpet`):
-  `Carpet`
- `ScatterCarpet` (PointCarpet, LineCarpet, SplineCarpet, BubbleCarpet)
- `ContourCarpet`
- Domain (`ChartDomain`)
- `Pie` (Pie, Doughnut)
- `FunnelArea`
- `Sunburst`
- `Treemap`
- `ParallelCoord`
- `ParallelCategories`
- `Sankey`
- `Table`
- `Indicator`
- `Icicle`
- Smith (`ChartSmith)`
-  `ScatterSmith` (PointSmith, LineSmith, BubbleSmith)
You can directly render charts as html cell output with the dotnet interactive kernel:
This library provides an interface for image rendering engines to consume plots and create static image files (PNG, JPG, SVG), as well as a reference implementation using [PuppeteerSharp]( to render charts with headless chromium.