Releases: plotly/Plotly.NET
Plotly.NET v5.1.0
Maintenance release to prevent Plotly.NET breaking for users that upgrade the DynamicObj dependency to >=3.0.0. DynamicObj is now pinned to the version range [2.0.0, 3.0.0)
until we manage to make Plotly.NET work with the major changes in that lib.
New Contributors
- @TheKiiiing made their first contribution in #467
Additional extension package releases:
Full Changelog: 5.0.0...5.1.0
Plotly.NET v5.0.0
Major release with lots of bug fixes, improvements, and upstream feature additions from plotly.js. Many changes are backwards-incompatible with previous versions.
Milestone link with all the fixed/closed issues
-
Add Chart.Pareto. This contribution started with the fslab hackathon 2023 and was submitted by @rockfaith75 and @smoothdeveloper, thank you!
-
Make Contours setting directly accessible on all supported traces, fixes #426
-
Allow DynamicObj for the args properties of update buttons, fixes #414
-
Expand DisplayOptions to include direct fields for document title, description, charset, and favicon, fixes #374
-
Keep up with plotlyjs 2.x incremental updates. Note that v2.28+ will be on Plotly.NET 6.0, as some major changes are needed for supporting it properly (see #441)
- v2.22:
- v2.23:
- v2.24:
- v2.25:
- v2.26:
- v2.27:
Additional extension package releases::
- Plotly.NET.ImageExport (5.0.1 -> 6.0.0)
- Plotly.NET.Interactive (4.2.0 -> 5.0.0)
- Plotly.NET.CSharp (0.11.1 -> 0.12.0)
New Contributors
- @chausner made their first contribution in #410
- @IntegerMan made their first contribution in #429
- @smoothdeveloper made their first contribution in #431
Full Changelog: 4.2.0...5.0.0
Plotly.NET v4.2.0
This release makes Plotly.NET compatible with LINQPad.
Read more about this on the respective pull request.
Thanks a lot to @Peter-B-.
Plotly.NET v4.1.0
This is a maintenance release that aims to keep up with plotlyjs 2.x incremental updates.
The only major change is the usage of Giraffe.ViewEngine.StrongName instead of Giraffe.ViewEngine as html dsl.
This could be considered as a breaking change, but it's not because the Giraffe.ViewEngine.StrongName package is a drop-in replacement for Giraffe.ViewEngine with the only difference being a signed assembly
-
Keep up with plotlyjs 2.x incremental updates:
- v2.22+ will be on Plotly.NET 5.0, because it introduces breaking changes.
- v2.21:
- v2.20:
- v2.19:
-
misc fixes and improvements:
Additional extension package releases::
Plotly.NET v4.0.0
This release of Plotly.NET focuses mainly on QOL improvements and keeping up with plotly.js changes.
Plotly.NET
Milestone link with all the fixed/closed issues
-
Add high level arg for base layer style to all mapbox charts
-
Add ShowXAxisRangeSlider argument for Chart.OHLC and Chart.Candlestick
-
Refactor DisplayOptions - An object to control the way Charts are displayed in generated HTML files:
- Add various functions to manipulate DisplayOptions, Refactor DisplayOptions as DynamicObj (again)
- Add
PlotlyJSReference
type and logic to handle various ways of referencing plotly.js in HTML output:Full
: Include the full plotly.js source code. The currently supported plotly.js version is now included as embedded resource in the package. HTML files using this option are self-contained and can be used offline.CDN
: The default. uses a script tag in the head of the generated HTML to load plotly.js from a CDN.Require
: Use requirejs to load plotly. This option is now used in Plotly.NET.Interactive. Unnecessary usage of require.js is now removed from all other options but this.NoReference
: Don't include any plotly.js reference. Useful if you want to embed the output into another page that already references plotly.
-
Keep up with plotlyjs 2.x incremental updates:
- v2.18:
- v2.17:
- v2.16:
- v2.15:
- v2.14:
- v2.13:
- v2.12:
- v2.10:
- v2.9:
- v2.8:
Plotly.NET.Interactive
- Update .NET interactive references
- Use new DisplayOptions functions to use requirejs with the Global plotlyjs version
3.0.0-manuscript
This release triggers a new zenodo doi for the software article to include the used data and can otherwise be ignored.
3.0.0
2.0.0
Plotly.NET 2.0
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.
TL;DR
- 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
General
- 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 theLayout
and therefore in theLaoutObjects
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 5 main categories of abstractions:
- There are now several
Trace
types for each kind of subplot (Trace2D
,Trace3D
, etc.) and eqivalentChart
types (Chart2D
,Chart3D
, etc). while not visible from the top level api (everything kan be accessed via the unifiedChart
API), this greatly improves correct multi chart layouting. - There are 3 ways of creating charts with increasing level of customization:
- The
Chart
API as a unified API surface for chart creation and stylingChart.<ChartType>
(e.g.Chart.Point
) for chart creation from data and some chart specific styling optionsChart.with<Style or object>
(e.g.Chart.withXAxisStyle
) for styling of chart objects
- Creation of Chart objects by manually creating
Trace
,Layout
andConfig
objects with many more optional customization parameters - Exclusive usage of
DynamicObj
- you can translate any plotly.js javascript with this method.
- The
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)
Plotly.NET.Interactive
You can directly render charts as html cell output with the dotnet interactive kernel:
Plotly.NET.ImageExport
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.
2.0.0-preview.18
Github pre-release to trigger zenodo DOI generation.
release notes here: https://github.com/plotly/Plotly.NET/blob/dev/RELEASE_NOTES.md
Release 1.2.2
1.2.2 - Apr 9 2020
- Opening Charts is now more or less OS agnostic
- Improve C# interop by using null as default parameter for optional parameters in chart extensions and requiring qualified access for style parameters