Pewarta Proxy

📋 Server Request & Proxy Logs

Loading active proxy settings...
Developed by Khairul Adha (adhexa.id)
Mengambil log server...

⚙️ Pengaturan Proxy Target

Skip to content

Releases: plotly/Plotly.NET

6.0.0

Choose a tag to compare

@kMutagene kMutagene released this 29 Oct 15:55

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.

  • #504: Upgrade DynamicObj to [8.0.0, 9.0.0), raising its transitive FSharp.Core minimum to 10.1.300. No Plotly.NET source adaptations were required. The upgrade includes revised hashing and equality for custom properties containing F# option values; ordinary optional chart arguments are unwrapped before storage.

  • Bump bundled plotly.js to 2.28.0

  • #459: Breaking: Rename nine ColorKeyword cases. The old names have been removed; replace usages and pattern matches using the mapping below. RGB values are unchanged, including LightSlateGray and LightSlateGrey, which both map to (119, 136, 153).

    Removed name Replacement
    Darkolivegreen DarkOliveGreen
    Honeydew HoneyDew
    Hotpink HotPink
    LightAalmon LightSalmon
    LightAeaGreen LightSeaGreen
    LightAkyBlue LightSkyBlue
    LightAlateGray LightSlateGray
    LightslateGrey LightSlateGrey
    Skyblue SkyBlue
  • #477: Fix tick-font serialization for parallel categories and parallel coordinates charts, and add StyleParam.Shape.HSpline for horizontal spline paths in parallel categories plots.

  • #441: Encoded typed array support — plotly.js 2.28 introduced a base64 representation for numeric arrays. Plotly.NET supports it for selected trace fields and chart constructors:

    • 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 across the 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 selected F# Chart 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 selected derived 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).

    • Shared Sankey node/link objects accept encoded positions, source/target/value, and supported numeric metadata. Encoded values replace corresponding plain values when both are supplied in the same init/style call. Labels remain plain strings.

    • One-dimensional samples do not need a shape; matrix inputs use an explicitly shaped flat payload. Strings, arbitrary objects, decimal, and 64-bit integer encoding are outside the supported dtype set. Image pixels and helpers that compute from plain inputs (such as Pareto, Residual, and AnnotatedHeatmap) have no direct encoded overload.

    • The C# package exposes a selected subset of direct chart conveniences, documented in its release notes and the encoded-array guide. This release does not claim all-chart parity or measured encoding performance gains.

  • Sankey node alignment — StyleParam.SankeyNodeAlign supports Left, Right, Center, and Justify through SankeyNodes and the F# / C# chart conveniences.

  • Virtual-WebGL — existing DisplayOptions.AdditionalHeadTags can load the optional WebGL 1 virtualization script before plotly.js; the encoded-array guide shows the script ordering.

  • #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.

New Contributors

Full Changelog: 5.1.0...6.0.0

Additional extension package releases::

6.0.0-preview.1

6.0.0-preview.1 Pre-release
Pre-release

Choose a tag to compare

@kMutagene kMutagene released this 28 Jul 11:42

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

Full Changelog: 5.1.0...6.0.0-preview.1

Plotly.NET v5.1.0

Choose a tag to compare

@kMutagene kMutagene released this 04 Sep 06:29

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

Additional extension package releases:

Full Changelog: 5.0.0...5.1.0

Plotly.NET v5.0.0

Choose a tag to compare

@kMutagene kMutagene released this 27 May 10:22

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::

New Contributors

Full Changelog: 4.2.0...5.0.0

Plotly.NET v4.2.0

Choose a tag to compare

@kMutagene kMutagene released this 02 Aug 16:13

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

Choose a tag to compare

@kMutagene kMutagene released this 18 Jul 11:46

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::

Plotly.NET v4.0.0

Choose a tag to compare

@kMutagene kMutagene released this 24 Feb 14:23

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

Plotly.NET.Interactive

3.0.0-manuscript

Choose a tag to compare

@kMutagene kMutagene released this 12 Jul 14:21
19d8e10

This release triggers a new zenodo doi for the software article to include the used data and can otherwise be ignored.

3.0.0

Choose a tag to compare

@kMutagene kMutagene released this 15 Jun 08:31

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

2.0.0

Choose a tag to compare

@kMutagene kMutagene released this 28 Apr 16:20

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:

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 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.
  • 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.