Hi everyone, today i am excited to give a big update about
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.NETnow supports all trace types, so you have the full power of plotly in your .NET environment.
Thanks to FsLab contributors,
Plotly.NETworks 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.Express, similarily to the python project.
Plotly.NETalready 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!