Skip to content

Latest commit

 

History

History
297 lines (235 loc) · 17.8 KB

RELEASE_NOTES.md

File metadata and controls

297 lines (235 loc) · 17.8 KB

2.0.0 +

Starting from 2.0.0, Versions of Plotly.NET and expansion packages are decoupled, meaning this single release notes page does not work anymore.

For the individual package release notes, please refer to these files:

2.0.0 - Apr 24 2022

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:

plotly-net-gource

(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 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 equivalent 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)

Plotly.NET.Interactive

You can directly render charts as html cell output with the dotnet interactive kernel:

image

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-previews - (changelog)

Fsharp.Plotly joined the Plotly family and will from now on be released under Plotly.NET

Breaking changes compared to 1.x.x / previous 2.0.0 alpha/beta/preview versions:

  • Breaking: Fix keys values order for bar charts
  • Breaking: fix color assignment of pie and doughnut charts
  • Breaking: Chart methods now have static type annotations, which may lead to incompatibilities in some cases
  • Breaking: Rename ChartDescription type: Plotly.NET.ChartDescription.Description -> Plotly.NET.ChartDescription
  • Possibly breaking: target netstandad 2.0
  • Breaking: Many functions of the Chart API have been changed to be in lower camelCase (e.g Chart.Show -> Chart.show, Chart.withX_Axis -> Chart.withXAxis, etc.) see full set of changes in that category here, thanks @WhiteBlackGoose
  • Breaking: Many Parameters of init and style functions have been changed to PascalCase, this is ongoing and will be breaking eregularily until unified.
  • SubPlotIds are now unified under the StyleParam.SubPlotId type which is used to assign subplots anchors (e.g. scenes for 3d charts, polar for polar charts) This change will be reflectes in trace type modeling in a later release.
  • Breaking: Layout and trace object abstractions are now in new namespaces: Plotly.NET.LayoutObjects/Plotly.NET.TraceObjects
  • Breaking: every argument/parameter concerned with color has been changed to use the new Color type isntead of a plain string.
  • Breaking: The underlying plotly.js version is now pinned at 2.6.3
  • Breaking: POC of multivalue support (breaks Bar charts)

Major Additions:

Plotly.NET now has 100% trace coverage! New Charts:

Minor Additions/fixes:

Other notable changes

These changes do not necessarily reflect changes on the usage layer, but should be attributed/noted nonetheless:

1.2.2 - Apr 9 2020

1.2.1 - Apr 8 2020

  • Improve C# interop by using null as default parameter for optional parameters in chart extensions and requiring qualified access for style parameters

1.2.0 - Feb 17 2020

Additional functionality:

Additional plots:

Additional functionality and plots thanks to external open source contributors:

1.1.2 - Aug 16 2018

  • Support .net framework 4.7
  • Minor improvements

1.1.1 - Jun 22 2018

  • Support netStandard 2.0
  • Add new chart (SLOMP)

1.1.0 - Jan 14 2018

  • Add new charts
  • Add multiple axis support
  • Add subplot support

1.0.4 - Oct 17 2017

  • Fixed nuget package

1.0.3 - Sep 06 2017

  • Add different ways to modify Charts

1.0.2 - Sep 12 2016

  • Add Scatter3d line plots
  • Add 3d Surface plots

1.0.1 - July 5 2016

  • More awesome stuff coming...
  • More 3d-Charts
  • Multiple axis support
  • Shapes

0.5.0-beta - June 22 2016

  • Documentation and tutorial
  • TraceObjects with interface implementation
  • Extensions for Chart module

0.0.1-beta - May 13 2016

  • Initial release