Learn how to use Dash Bio for next-gen sequencing & quality control. 🧬Register for the Oct 27 webinar.

PSA: Plotly.NET 2.0 is coming soon!

Hi everyone, today i am excited to give a big update about Plotly.NET developments.

What has been done:

It has been a busy time since our F#/.NET interface for plotly.js joined the family in June last year.
Here we are, >100k LOC in >300 commits and a love/hate relationship with the F# compiler later, we are in reach of completing the 2.0 milestone.

  • Plotly.NET now supports all trace types, so you have the full power of plotly in your .NET environment.

  • Thanks to FsLab contributors, Plotly.NET works flawlessly in dotnet interactive notebooks, the .NET kernel for jupyter. We now also have a large test suite for the generated html in place.

  • The usability of the Chart API from C# was significantly improved

  • Static image support is now supported via puppeteer

Because F#/.NET languages are statically typed, we needed a different approach than the other language versions of plotly. This leads to some features being very hard to implement (such as charts taking N-dimensional arrays as input, or all the color options), but we are also able to leverage the type system to provide type safety and intellisense suggestions where most other languages simply let you pluck an arbitrary string as properties.

What still needs to be done:

Cleanup and API unification basically. We don’t want to have breaking changes soon after the 2.0 release (which would mean an early major version increase). That includes:

  • Addition of properties in old Chart APIs that have been added to plotly.js
  • unified casing for properties and types
  • Improve C# interop a little more (it is pretty good already)

Future developments (3.x +)

Here are some things that are on the long-term roadmap:

  • Separation into Plotly.NET core and Plotly.NET.Express, similarily to the python project. Plotly.NET already provides many functions that go beyond simply giving access to plotly.js, such as automated grid creation or APIs and presets for creating composite charts.
  • support of Kaleido for static image export
  • figure rendering backend via Dash.NET

Thanks for reading and keep an eye out for Plotly.NET 2.0, it is coming this year, pinky promise!

1 Like