Skip to content

Commit 3dca9f4

Browse files
committed
Bump release notes
1 parent 7121b4d commit 3dca9f4

File tree

1 file changed

+115
-1
lines changed

1 file changed

+115
-1
lines changed

RELEASE_NOTES.md

Lines changed: 115 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,118 @@
1-
### 2.0.0 - TBD
1+
### 2.0.0 - Apr 24 2022
2+
3+
Plotly.NET finally has reached all milestones for 2.0 and is ready for a stable release.
4+
5+
This release is the culmination of almost **2 years of work in >500 commits by 17 contributors**.
6+
7+
Here is an attempt to visualize the history of these changes in a few seconds:
8+
9+
![plotly-net-gource](https://user-images.githubusercontent.com/21338071/161372870-3fe429e8-a999-403c-8a44-dba40926d9bd.gif)
10+
11+
(made with [gource](https://github.com/acaudwell/Gource))
12+
13+
All APIs have changed significantly - this release is incompatible with 1.x and many 2.x-preview/beta versions.
14+
15+
**TL;DR**
16+
17+
- All plotly chart/trace types!
18+
- Unified API!
19+
- chart rendering in notebooks!
20+
- programmatic static image export!
21+
- Exhaustive docs!
22+
- We have a [discord server](https://discord.gg/k3kUtFY8DB), feel free to ask questions there!
23+
24+
**Core library**
25+
26+
**General**
27+
28+
- The API layer model has refined and used for every type of plotly object abstraction. In brief,
29+
- 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)
30+
- 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.)
31+
- 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.
32+
- There are now several `Trace` types for each kind of subplot (`Trace2D`, `Trace3D`, etc.) and eqivalent `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.
33+
- There are 3 ways of creating charts with increasing level of customization:
34+
1. The `Chart` API as a unified API surface for chart creation and styling
35+
- `Chart.<ChartType>` (e.g. `Chart.Point`) for chart creation from data and some chart specific styling options
36+
- `Chart.with<Style or object>` (e.g. `Chart.withXAxisStyle`) for styling of chart objects
37+
2. Creation of Chart objects by manually creating `Trace`, `Layout` and `Config` objects with many more optional customization parameters
38+
3. Exclusive usage of `DynamicObj` - you can translate **any** plotly.js javascript with this method.
39+
40+
**Chart/Trace abstractions**
41+
42+
You can create the following Charts with Plotly.NET's API (and many more by combining them):
43+
44+
- Cartesian 2D (`Chart2D`):
45+
- `Scatter` (Point, Line, Spline, Bubble, Range, Area, SplineArea, StackedArea)
46+
- `Funnel`
47+
- `Waterfall`
48+
- `Bar` (Bar, Column, StackedBar, StackedColumn)
49+
- `Histogram`
50+
- `Histogram2D`
51+
- `Histogram2DContour`
52+
- `PointDensity`
53+
- `BoxPlot`
54+
- `Violin`
55+
- `Heatmap` (Heatmap, AnnotatedHeatmap)
56+
- `Image`
57+
- `Contour`
58+
- `OHLC` (OHLC, CandleSticks)
59+
- `Splom`
60+
61+
- Cartesian 3D (`Chart3D`):
62+
- `Scatter3D` (Point3D, Line3D, Bubble3D)
63+
- `Surface`
64+
- `Mesh3D`
65+
- `Cone`
66+
- `StreamTube`
67+
- `Volume`
68+
- `IsoSurface`
69+
70+
- Polar (`ChartPolar`):
71+
- `ScatterPolar` (PointPolar, LinePolar, SplinePolar, BubblePolar)
72+
- `BarPolar`
73+
74+
- Maps (`ChartMap`):
75+
- `ChoroplethMap`
76+
- `ChoroplethMapbox`
77+
- `ScatterGeo` (PointGeo, LineGeo, BubbleGeo)
78+
- `ScatterMapbox` (PointMapbox, LineMapbox, BubbleMapbox)
79+
- `DensityMapbox`
80+
81+
- Ternary (`ChartTernary`):
82+
- `ScatterTernary` (PointTernary, LineTernary, SplineTernary, BubbleTernary)
83+
84+
- Carpet (`ChartCarpet`):
85+
- `Carpet`
86+
- `ScatterCarpet` (PointCarpet, LineCarpet, SplineCarpet, BubbleCarpet)
87+
- `ContourCarpet`
88+
89+
- Domain (`ChartDomain`)
90+
- `Pie` (Pie, Doughnut)
91+
- `FunnelArea`
92+
- `Sunburst`
93+
- `Treemap`
94+
- `ParallelCoord`
95+
- `ParallelCategories`
96+
- `Sankey`
97+
- `Table`
98+
- `Indicator`
99+
- `Icicle`
100+
101+
- Smith (`ChartSmith)`
102+
- `ScatterSmith` (PointSmith, LineSmith, BubbleSmith)
103+
104+
**Plotly.NET.Interactive**
105+
106+
You can directly render charts as html cell output with the dotnet interactive kernel:
107+
108+
![image](https://user-images.githubusercontent.com/21338071/161376599-2afa5610-7726-41b9-87a5-20a88ed2441f.png)
109+
110+
111+
**Plotly.NET.ImageExport**
112+
113+
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](https://github.com/hardkoded/puppeteer-sharp) to render charts with headless chromium.
114+
115+
### 2.0.0-previews - (changelog)
2116

3117
**Fsharp.Plotly joined the Plotly family and will from now on be released under `Plotly.NET`**
4118

0 commit comments

Comments
 (0)