Plotly.NET
6.0.0-preview.2
dotnet add package Plotly.NET --version 6.0.0-preview.2
NuGet\Install-Package Plotly.NET -Version 6.0.0-preview.2
<PackageReference Include="Plotly.NET" Version="6.0.0-preview.2" />
<PackageVersion Include="Plotly.NET" Version="6.0.0-preview.2" />
<PackageReference Include="Plotly.NET" />
paket add Plotly.NET --version 6.0.0-preview.2
#r "nuget: Plotly.NET, 6.0.0-preview.2"
#:package Plotly.NET@6.0.0-preview.2
#addin nuget:?package=Plotly.NET&version=6.0.0-preview.2&prerelease
#tool nuget:?package=Plotly.NET&version=6.0.0-preview.2&prerelease
plotly.js charts in .NET programming languages 📈🚀.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DynamicObj (>= 7.0.1 && < 8.0.0)
- FSharp.Core (>= 10.0.100)
- Giraffe.ViewEngine (>= 1.4.0)
- Newtonsoft.Json (>= 13.0.4)
NuGet packages (21)
Showing the top 5 NuGet packages that depend on Plotly.NET:
| Package | Downloads |
|---|---|
|
Plotly.NET.ImageExport
An easily extensible library to render static images from Plotly.NET charts. |
|
|
Plotly.NET.CSharp
Native C# bindings for Plotly.NET 📈🚀. |
|
|
Plotly.NET.Interactive
A .NET Interactive Kernel Extension for displaying Plotly.NET charts. |
|
|
QuantConnect.Research
QuantConnect LEAN Engine: Research Project - Core implementation for jupyter research environment |
|
|
BioFSharp.Vis
Data visualization for bioinformatic purposes |
GitHub repositories (6)
Showing the top 6 popular GitHub repositories that depend on Plotly.NET:
| Repository | Stars |
|---|---|
|
QuantConnect/Lean
Lean Algorithmic Trading Engine by QuantConnect (Python, C#)
|
|
|
dotnet/dotnet
Home of .NET's Virtual Monolithic Repository which includes all the code needed to build the .NET SDK.
|
|
|
asc-community/AngouriMath
Open-source cross-platform symbolic algebra library for C# and F#. Can be used for both production and research purposes.
|
|
|
bitfaster/BitFaster.Caching
High performance, thread-safe in-memory caching primitives for .NET
|
|
|
Capnode/Algoloop
Windows desktop algo trading with QuantConnect Lean engine.
|
|
|
WhiteBlackGoose/AsmToDelegate
Compile asm code into C# functions on fly!
|
| Version | Downloads | Last Updated |
|---|---|---|
| 6.0.0-preview.2 | 44 | 6/16/2026 |
| 6.0.0-preview.1 | 1,804 | 7/28/2025 |
| 5.1.0 | 309,617 | 9/4/2024 |
| 5.0.0 | 461,260 | 5/27/2024 |
| 4.2.0 | 104,068 | 8/2/2023 |
| 4.1.0 | 44,303 | 7/14/2023 |
| 4.0.0 | 98,450 | 2/24/2023 |
| 4.0.0-preview.4 | 292 | 2/24/2023 |
| 4.0.0-preview.3 | 380 | 2/15/2023 |
| 4.0.0-preview.2 | 360 | 2/10/2023 |
| 4.0.0-preview.1 | 289 | 2/10/2023 |
| 3.0.1 | 162,801 | 8/26/2022 |
| 3.0.0 | 26,996 | 6/15/2022 |
| 2.0.0 | 17,731 | 4/28/2022 |
| 2.0.0-preview.18 | 1,589 | 3/4/2022 |
| 2.0.0-preview.17 | 22,254 | 2/8/2022 |
| 2.0.0-preview.16 | 21,728 | 11/27/2021 |
| 2.0.0-preview.15 | 2,361 | 11/16/2021 |
| 2.0.0-preview.14 | 424 | 11/12/2021 |
| 2.0.0-preview.13 | 340 | 11/12/2021 |
This version [removes C# interop from the core F# Plotly.NET library](https://github.com/plotly/Plotly.NET/issues/457), offloading those implementations directly to the native C# lib Plotly.NET.CSharp:
[Milestone link with all the fixed/closed issues](https://github.com/plotly/Plotly.NET/milestone/8)
Breaking:** Plotly.NET assemblies are no longer strong-named. Maintaining a strong-named build chain has caused recurring friction (see [#452](https://github.com/plotly/Plotly.NET/issues/452), [#371](https://github.com/plotly/Plotly.NET/issues/371), and the broader discussion at [StephenCleary/AsyncEx#129](https://github.com/StephenCleary/AsyncEx/issues/129)) and forced us to maintain a re-packaged signed fork of Giraffe.ViewEngine ([giraffe-fsharp/Giraffe.ViewEngine#23](https://github.com/giraffe-fsharp/Giraffe.ViewEngine/pull/23)). Consumers that still need strong-named binaries can use [brutaldev/StrongNameSigner](https://github.com/brutaldev/StrongNameSigner) to sign assemblies post-build.
As a consequence, the html dsl dependency switches back from `Giraffe.ViewEngine.StrongName 2.0.0-alpha1` to upstream `Giraffe.ViewEngine 1.4.0`. The namespace is unchanged, so user code is not affected.
- Bump bundled plotly.js to **2.28.0**
- [#441](https://github.com/plotly/Plotly.NET/issues/441): **Encoded typed array support** — plotly.js 2.28 introduced base64-encoded typed arrays as a high-performance alternative to JSON arrays for trace data fields. Plotly.NET now exposes this fully:
- New `EncodedTypedArray` type (in `Plotly.NET`) carrying a base64 payload (`bdata`), a dtype tag (`dtype`), and an optional shape for multi-dimensional data. Supported dtypes: `Float64`, `Float32`, `Int32`, `UInt32`, `Int16`, `UInt16`, `Int8`, `UInt8`, `UInt8Clamped`.
- Convenience constructors: `EncodedTypedArray.ofFloat64Array`, `ofFloat32Array`, `ofInt32Array`, `ofUInt32Array`, `ofInt16Array`, `ofUInt16Array`, `ofInt8Array`, `ofUInt8Array`, `ofUInt8ClampedArray` — all accept a 1-D .NET array and an optional `shape` parameter for multi-dimensional layouts.
- Encoded fields added to **all trace style modules** (`Trace2DStyle`, `Trace3DStyle`, `TracePolarStyle`, `TraceGeoStyle`, `TraceMapboxStyle`, `TraceTernaryStyle`, `TraceCarpetStyle`, `TraceDomainStyle`, `TraceSmithStyle`), covering data arrays (`XEncoded`, `YEncoded`, `ZEncoded`, etc.), metadata arrays (`IdsEncoded`, `CustomDataEncoded`, `MultiTextEncoded`, `SelectedPointsEncoded`), error bar arrays (`ArrayEncoded`, `ArrayminusEncoded`), and trace-specific fields (e.g. `Q1Encoded`/`MedianEncoded`/`Q3Encoded` on BoxPlot, `OpenEncoded`/`HighEncoded`/`LowEncoded`/`CloseEncoded` on OHLC/Candlestick, `OpacityScaleEncoded` on Surface/Volume/IsoSurface, `IntensityEncoded`/`IEncoded`/`JEncoded`/`KEncoded` on Mesh3D, dimension `ValuesEncoded` on Splom/ParallelCoord).
- Encoded overloads added to **all `Chart` module root functions** (e.g. `Chart.Scatter`, `Chart.Bar`, `Chart.Waterfall`, `Chart.Histogram`, `Chart.BoxPlot`, `Chart.Violin`, `Chart.OHLC`, `Chart.Candlestick`, `Chart.Splom`, `Chart.Histogram2D`, `Chart.Heatmap`, `Chart.Contour`, `Chart.Scatter3D`, `Chart.Surface`, `Chart.Mesh3D`, `Chart.Cone`, `Chart.StreamTube`, `Chart.Volume`, `Chart.IsoSurface`, `Chart.ScatterPolar`, `Chart.BarPolar`, `Chart.ScatterGeo`, `Chart.ChoroplethMap`, `Chart.ScatterMapbox`, `Chart.ChoroplethMapbox`, `Chart.DensityMapbox`, `Chart.ScatterTernary`, `Chart.Carpet`, `Chart.ScatterCarpet`, `Chart.ContourCarpet`, `Chart.ScatterSmith`, `Chart.Pie`, `Chart.FunnelArea`, `Chart.Sunburst`, `Chart.Treemap`, `Chart.Icicle`) and to all **H1/H2 convenience helpers** (e.g. `Chart.Point`, `Chart.Line`, `Chart.Spline`, `Chart.Bubble`, `Chart.Area`, `Chart.SplineArea`, `Chart.StackedArea`, `Chart.Range`, `Chart.Funnel`, `Chart.Histogram`, `Chart.StackedBar`, `Chart.PointDensity`, `Chart.PointPolar`, `Chart.PointGeo`, `Chart.PointMapbox`, `Chart.PointTernary`, `Chart.PointSmith`, `Chart.PointCarpet`, `Chart.Doughnut`).
- [#500](https://github.com/plotly/Plotly.NET/pull/500): Internal refactor — split the monolithic `Chart.fs` into per-chart-family files (`Chart2D_Scatter.fs`, `Chart2D_Bar.fs`, etc.) for better maintainability. No API changes.
- **Set comparison charts** — new composite charts for visualizing set membership and intersections (in `ChartComposite`):
- `Chart.Venn` draws a Venn diagram comparing two or three sets (`set1`, `set2`, optional `Set3`), annotating each region with its member count. Axes are locked to a 1:1 pixel ratio so the circles always render round, and colors/labels/text font are customizable.
- `Chart.UpSet` draws an UpSet plot for an arbitrary number of sets: an intersection matrix, an intersection-size bar chart, and a set-size bar chart, with optional per-intersection attribute plots via `SetData`/`SetDataChartsTitle`.
- Both take plain `#seq<string>` / `#seq<#seq<string>>` set inputs (treated as sets internally; duplicates ignored) and support the standard `UseDefaults` parameter.
- Dev tooling: target framework for build/test projects updated to `net10.0`; NuGet dependency updates (Newtonsoft.Json 13.0.4, Deedle 5.0.0, FSharp.Data 8.1.7, FAKE 6.1.4, Microsoft.NET.Test.Sdk 18.x).