Skip to content

Latest commit

 

History

History
186 lines (134 loc) · 17.1 KB

File metadata and controls

186 lines (134 loc) · 17.1 KB

6.0.0 - TBD

This version removes C# interop from the core F# Plotly.NET library, offloading those implementations directly to the native C# lib Plotly.NET.CSharp:

Milestone link with all the fixed/closed issues

Breaking: Plotly.NET assemblies are no longer strong-named. Maintaining a strong-named build chain has caused recurring friction (see #452, #371, and the broader discussion at StephenCleary/AsyncEx#129) and forced us to maintain a re-packaged signed fork of Giraffe.ViewEngine (giraffe-fsharp/Giraffe.ViewEngine#23). Consumers that still need strong-named binaries can use brutaldev/StrongNameSigner to sign assemblies post-build.

As a consequence, the html dsl dependency switches back from Giraffe.ViewEngine.StrongName 2.0.0-alpha1 to upstream Giraffe.ViewEngine 1.4.0. The namespace is unchanged, so user code is not affected.

  • Bump bundled plotly.js to 2.28.0

  • #441: Encoded typed array support — plotly.js 2.28 introduced base64-encoded typed arrays as a high-performance alternative to JSON arrays for trace data fields. Plotly.NET now exposes this fully:

    • New EncodedTypedArray type (in Plotly.NET) carrying a base64 payload (bdata), a dtype tag (dtype), and an optional shape for multi-dimensional data. Supported dtypes: Float64, Float32, Int32, UInt32, Int16, UInt16, Int8, UInt8, UInt8Clamped.
    • Convenience constructors: EncodedTypedArray.ofFloat64Array, ofFloat32Array, ofInt32Array, ofUInt32Array, ofInt16Array, ofUInt16Array, ofInt8Array, ofUInt8Array, ofUInt8ClampedArray — all accept a 1-D .NET array and an optional shape parameter for multi-dimensional layouts.
    • Encoded fields added to all trace style modules (Trace2DStyle, Trace3DStyle, TracePolarStyle, TraceGeoStyle, TraceMapboxStyle, TraceTernaryStyle, TraceCarpetStyle, TraceDomainStyle, TraceSmithStyle), covering data arrays (XEncoded, YEncoded, ZEncoded, etc.), metadata arrays (IdsEncoded, CustomDataEncoded, MultiTextEncoded, SelectedPointsEncoded), error bar arrays (ArrayEncoded, ArrayminusEncoded), and trace-specific fields (e.g. Q1Encoded/MedianEncoded/Q3Encoded on BoxPlot, OpenEncoded/HighEncoded/LowEncoded/CloseEncoded on OHLC/Candlestick, OpacityScaleEncoded on Surface/Volume/IsoSurface, IntensityEncoded/IEncoded/JEncoded/KEncoded on Mesh3D, dimension ValuesEncoded on Splom/ParallelCoord).
    • Encoded overloads added to all Chart module root functions (e.g. Chart.Scatter, Chart.Bar, Chart.Waterfall, Chart.Histogram, Chart.BoxPlot, Chart.Violin, Chart.OHLC, Chart.Candlestick, Chart.Splom, Chart.Histogram2D, Chart.Heatmap, Chart.Contour, Chart.Scatter3D, Chart.Surface, Chart.Mesh3D, Chart.Cone, Chart.StreamTube, Chart.Volume, Chart.IsoSurface, Chart.ScatterPolar, Chart.BarPolar, Chart.ScatterGeo, Chart.ChoroplethMap, Chart.ScatterMapbox, Chart.ChoroplethMapbox, Chart.DensityMapbox, Chart.ScatterTernary, Chart.Carpet, Chart.ScatterCarpet, Chart.ContourCarpet, Chart.ScatterSmith, Chart.Pie, Chart.FunnelArea, Chart.Sunburst, Chart.Treemap, Chart.Icicle) and to all H1/H2 convenience helpers (e.g. Chart.Point, Chart.Line, Chart.Spline, Chart.Bubble, Chart.Area, Chart.SplineArea, Chart.StackedArea, Chart.Range, Chart.Funnel, Chart.Histogram, Chart.StackedBar, Chart.PointDensity, Chart.PointPolar, Chart.PointGeo, Chart.PointMapbox, Chart.PointTernary, Chart.PointSmith, Chart.PointCarpet, Chart.Doughnut).
  • #500: Internal refactor — split the monolithic Chart.fs into per-chart-family files (Chart2D_Scatter.fs, Chart2D_Bar.fs, etc.) for better maintainability. No API changes.

  • Set comparison charts — new composite charts for visualizing set membership and intersections (in ChartComposite):

    • Chart.Venn draws a Venn diagram comparing two or three sets (set1, set2, optional Set3), annotating each region with its member count. Axes are locked to a 1:1 pixel ratio so the circles always render round, and colors/labels/text font are customizable.
    • Chart.UpSet draws an UpSet plot for an arbitrary number of sets: an intersection matrix, an intersection-size bar chart, and a set-size bar chart, with optional per-intersection attribute plots via SetData/SetDataChartsTitle.
    • Both take plain #seq<string> / #seq<#seq<string>> set inputs (treated as sets internally; duplicates ignored) and support the standard UseDefaults parameter.
  • Dev tooling: target framework for build/test projects updated to net10.0; NuGet dependency updates (Newtonsoft.Json 13.0.4, Deedle 5.0.0, FSharp.Data 8.1.7, FAKE 6.1.4, Microsoft.NET.Test.Sdk 18.x).

5.1.0 - September 04 2024

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.

5.0.0 - May 27 2024

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

Additional extension package releases::

4.2.0 - August 02 2023

This release makes Plotly.NET compatible with LINQPad.

Read more about this on the respective pull request.

Thanks a lot to @Peter-B-.

4.1.0 - July 14 2023

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

Additional extension package releases::

4.0.0 - February 24 2023

Milestone link with all the fixed/closed issues

3.0.1 - August 26 2022

Minor fixes for Object abstractions:

  • Use correct Optional Parameter Attributes everywhere. This affects object abstractions for the following objects, but should be backwards compatible:
    • Annotation
    • LayoutImage
    • Pattern
    • TableCells
  • FontSelectionStyle.init now correctly returns a FontSelectionStyle instead of unit

3.0.0 - June 15 2022

This release adopts strong assembly naming. This might cause backwards incompatibility and therefore results in an early major version increase. For more insights why we do this, check out the conversation on this issue

Other additions: