|
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 | + |
| 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 | + |
| 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) |
2 | 116 |
|
3 | 117 | **Fsharp.Plotly joined the Plotly family and will from now on be released under `Plotly.NET`**
|
4 | 118 |
|
|
0 commit comments