Plotly.NET
Plotly.NET provides functions for generating and rendering plotly.js charts in .NET programming languages 📈🚀.
This documentation page is almost exclusively for the core F# API of Plotly.NET.
It should be easy to translate them into C#. However, as work on the idiomatic C# API progresses, we will provide native C# docs as well.
Table of contents
Installation
Plotly.NET consists of multiple packages. The two main ones are:
- Plotly.NET , the core API written in F#.
- Plotly.NET.CSharp , native C# bindings that make the usage of Plotly.NET more idiomatic from C#. This is work in progress. Missing charts and/or styling must be done via the core API.
For applications and libraries
Plotly.NET packages are available on NuGet to plug into your favorite package manager.
-
dotnet CLI
dotnet add package Plotly.NET --version 5.0.0
-
paket CLI
paket add Plotly.NET --version 5.0.0
-
package manager
Install-Package Plotly.NET -Version 5.0.0
Or add the package reference directly to your
.*proj
file:<PackageReference Include="Plotly.NET" Version="5.0.0" />
For scripting
You can include the package via an inline package reference:
#r "nuget: Plotly.NET, 5.0.0"
For dotnet interactive notebooks
You can use the same inline package reference as in scripts, but as an additional goodie the interactive extensions for dotnet interactive have you covered for seamless chart rendering:
#r "nuget: Plotly.NET.Interactive, 5.0.0"
Note:
Due to the currently fast development cycles of .NET Interactive, there might be increments in their versioning that render the current version of Plotly.NET.Interactive incompatible (example here).
If the interactive extension does not work, please file an issue and we will try to get it running again as soon as possible.
A possible fix for this is the inclusion of Dotnet.Interactive preview package sources. To use these, add the following lines before referencing Plotly.NET.Interactive:
|
Overview
Basics
The general, high-level API of Plotly.NET implements the following visualization flow:
- initialize a
GenericChart
object from the data you want to visualize by using the respectiveChart.*
function, optionally setting some specific style parameters - further style the chart with fine-grained control, e.g. by setting axis titles, tick intervals, etc.
- display (in the browser or as cell result in a notebook) or save the chart
Initializing a chart
The Chart
module contains a lot of functions named after the type of chart they will create, e.g.
Chart.Point
will create a point chart, Chart.Scatter3d
wil create a 3D scatter chart, and so on.
The respective functions all contain specific arguments, but they all have in common that the first mandatory arguments are the data to visualize.
Example: The first two arguments of the Chart.Point
function are the x and y data. You can therefore initialize a point chart like this:
open Plotly.NET
let xData = [ 0. .. 10. ]
let yData = [ 0. .. 10. ]
let myFirstChart = Chart.Point(xData, yData)
Styling a chart
Styling functions are generally the Chart.with*
naming convention. The following styling example does:
- set the chart title via
Chart.withTitle
- set the x axis title and removes the gridline from the axis via
Chart.withXAxisStyle
- set the y axis title and removes the gridline from the axis via
Chart.withYAxisStyle
let myFirstStyledChart =
Chart.Point(xData, yData)
|> Chart.withTitle "Hello world!"
|> Chart.withXAxisStyle ("xAxis")
|> Chart.withYAxisStyle ("yAxis")
Attention: Styling functions mutate 😈 the input chart, therefore possibly affecting bindings to intermediary results. We recommend creating a single chart for each workflow to prevent unexpected results.
Displaying a chart in the browser
The Chart.Show
function will open a browser window and render the input chart there. When working in a notebook context, after
referencing Plotly.NET.Interactive, the function is not necessary, just end the cell with the value of the chart.
myFirstChart |> Chart.show
Should render this chart in your browser:
myFirstStyledChart |> Chart.show
And here is what happened after applying the styles from above:
Displaying a chart in a notebook cell output
In a notebook context, you usually have (at least when running on a Jupyter server like Binder) no access to the browser on the machine where plotly runs on. That's why you can render charts directly in the cell output. Just end the cell with the chart value:
let xData' = [ 0. .. 10. ]
let yData' = [ 0. .. 10. ]
Chart.Point(xData', yData')
Here is the styled chart:
Chart.Point(xData, yData)
|> Chart.withTitle "Hello world!"
|> Chart.withXAxisStyle ("xAxis")
|> Chart.withYAxisStyle ("yAxis")
Comparison: Usage in F# and C#
One of the main design points of Plotly.NET is to provide support for multiple flavors of chart generation. Here are two examples in different styles and languages that create equivalent charts:
Functional pipeline style in F#:
[ (1, 5); (2, 10) ]
|> Chart.Point
|> Chart.withTraceInfo (Name = "Hello from F#")
|> Chart.withYAxisStyle (TitleText = "xAxis")
|> Chart.withXAxisStyle (TitleText = "yAxis")
Fluent interface style in C#:
This example uses the high-level native C# bindings for Plotly.NET that are provided by the Plotly.NET.CSharp
package.
|
Declarative style in F# using the underlying DynamicObj
:
This API is the most low-level and closest to the original plotly.js syntax. Make sure to spell dynamic members exactly as they are used in the plotly.js json schema.
open Plotly.NET.LayoutObjects
let xAxis =
let tmp = LinearAxis()
tmp?title <- "xAxis"
tmp?showgrid <- false
tmp?showline <- true
tmp
let yAxis =
let tmp = LinearAxis()
tmp?title <- "yAxis"
tmp?showgrid <- false
tmp?showline <- true
tmp
let layout =
let tmp = Layout()
tmp?xaxis <- xAxis
tmp?yaxis <- yAxis
tmp?showlegend <- true
tmp
let trace =
let tmp = Trace("scatter")
tmp?x <- [ 1; 2 ]
tmp?y <- [ 5; 10 ]
tmp?mode <- "markers"
tmp?name <- "Hello from F#"
tmp
GenericChart.ofTraceObject true trace |> GenericChart.setLayout layout
Declarative style in C# using the underlying DynamicObj
:
Note that this works only when using the Plotly.NET core API, as the C# bindings only target the high level API.
|
Contributing and copyright
The project is hosted on GitHub where you can report issues, fork the project and submit pull requests. If you're adding a new public API, please also consider adding samples that can be turned into a documentation. You might also want to read the library design notes to understand how it works.
The library is available under the OSI-approved MIT license which allows modification and redistribution for both commercial and non-commercial purposes. For more information, see the License file in the GitHub repository.
<summary> Contains mutable global default values. Changing these values will apply the default values to all consecutive Chart generations. </summary>
type DisplayOptions = inherit DynamicObj new: unit -> DisplayOptions static member addAdditionalHeadTags: additionalHeadTags: XmlNode list -> (DisplayOptions -> DisplayOptions) static member addChartDescription: description: XmlNode list -> (DisplayOptions -> DisplayOptions) static member combine: first: DisplayOptions -> second: DisplayOptions -> DisplayOptions static member getAdditionalHeadTags: displayOpts: DisplayOptions -> XmlNode list static member getChartDescription: displayOpts: DisplayOptions -> XmlNode list static member getDocumentCharset: displayOpts: DisplayOptions -> string static member getDocumentDescription: displayOpts: DisplayOptions -> string static member getDocumentFavicon: displayOpts: DisplayOptions -> XmlNode ...
--------------------
new: unit -> DisplayOptions
<summary> Sets how plotly is referenced in the head of html docs. </summary>
static member Chart.Point: x: #System.IConvertible seq * y: #System.IConvertible seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Text: 'c * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiText: 'c seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TextPosition: StyleParam.TextPosition * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: StyleParam.TextPosition seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: StyleParam.MarkerSymbol * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: StyleParam.MarkerSymbol seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Marker: TraceObjects.Marker * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Orientation: StyleParam.Orientation * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GroupNorm: StyleParam.GroupNorm * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'c :> System.IConvertible)
static member Chart.withTitle: title: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TitleFont: Font -> (GenericChart -> GenericChart)
<summary> The central type that gets created by all Chart constructors is GenericChart, which itself represents either a single chart or a multi chart (as a Discriminate Union type). A GenericChart consists of four top level objects: Trace (multiple of those in the case of a MultiChart), Layout, Config, and DisplayOptions. - `Trace` is in principle the representation of a dataset on a chart, including for example the data itself, color and shape of the visualization, etc. - `Layout` is everything of the chart that is not dataset specific - e.g. the shape and style of axes, the chart title, etc. - `Config` is an object that configures high level properties of the chart like making all chart elements editable or the tool bar on top - `DisplayOptions` is an object that contains meta information about how the html document that contains the chart. </summary>
type LinearAxis = inherit DynamicObj new: unit -> LinearAxis static member init: [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AxisType: AxisType * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRangeOptions: AutoRangeOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoShift: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleAnchor: ScaleAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleRatio: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Constrain: AxisConstraint * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConstrainToward: AxisConstraintDirection * [<Optional; DefaultParameterValue ((null :> obj))>] ?Matches: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?MaxAllowed: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinAllowed: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?Rangebreaks: Rangebreak seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TicksOn: CategoryTickAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelMode: TickLabelMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelPosition: TickLabelPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelStep: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelOverflow: TickLabelOverflow * [<Optional; DefaultParameterValue ((null :> obj))>] ?Mirror: Mirror * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoMargin: TickAutoMargin * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowSpikes: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeThickness: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeMode: SpikeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeSnap: SpikeSnap * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Minor: Minor * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?HoverFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?InsideRange: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Shift: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowDividers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Anchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Side: Side * [<Optional; DefaultParameterValue ((null :> obj))>] ?Overlaying: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelAlias: DynamicObj * [<Optional; DefaultParameterValue ((null :> obj))>] ?Layer: Layer * [<Optional; DefaultParameterValue ((null :> obj))>] ?Domain: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?Position: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?UIRevision: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSlider: RangeSlider * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSelector: RangeSelector * [<Optional; DefaultParameterValue ((null :> obj))>] ?Calendar: Calendar * [<Optional; DefaultParameterValue ((null :> obj))>] ?BackgroundColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowBackground: bool -> LinearAxis static member initCarpet: [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AxisType: AxisType * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayDTick: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayTick0: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?CheaterType: CheaterType * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelAlias: DynamicObj * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPadding: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridCount: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Smoothing: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineWidth: int -> LinearAxis static member initCategorical: categoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoShift: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleAnchor: ScaleAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleRatio: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Constrain: AxisConstraint * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConstrainToward: AxisConstraintDirection * [<Optional; DefaultParameterValue ((null :> obj))>] ?Matches: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Rangebreaks: Rangebreak seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TicksOn: CategoryTickAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelMode: TickLabelMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelPosition: TickLabelPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelOverflow: TickLabelOverflow * [<Optional; DefaultParameterValue ((null :> obj))>] ?Mirror: Mirror * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoMargin: TickAutoMargin * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowSpikes: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeThickness: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeMode: SpikeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeSnap: SpikeSnap * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Minor: Minor * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?HoverFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Shift: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowDividers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Anchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Side: Side * [<Optional; DefaultParameterValue ((null :> obj))>] ?Overlaying: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelAlias: DynamicObj * [<Optional; DefaultParameterValue ((null :> obj))>] ?Layer: Layer * [<Optional; DefaultParameterValue ((null :> obj))>] ?Domain: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?Position: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?UIRevision: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSlider: RangeSlider * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSelector: RangeSelector * [<Optional; DefaultParameterValue ((null :> obj))>] ?Calendar: Calendar -> LinearAxis static member initIndicatorGauge: [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelAlias: DynamicObj * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool -> LinearAxis static member style: [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AxisType: AxisType * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRangeOptions: AutoRangeOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoShift: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleAnchor: ScaleAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleRatio: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Constrain: AxisConstraint * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConstrainToward: AxisConstraintDirection * [<Optional; DefaultParameterValue ((null :> obj))>] ?Matches: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?MaxAllowed: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinAllowed: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?Rangebreaks: Rangebreak seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TicksOn: CategoryTickAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelMode: TickLabelMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelPosition: TickLabelPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelStep: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelOverflow: TickLabelOverflow * [<Optional; DefaultParameterValue ((null :> obj))>] ?Mirror: Mirror * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoMargin: TickAutoMargin * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowSpikes: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeThickness: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeMode: SpikeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeSnap: SpikeSnap * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Minor: Minor * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?HoverFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?InsideRange: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Shift: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowDividers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Anchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Side: Side * [<Optional; DefaultParameterValue ((null :> obj))>] ?Overlaying: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelAlias: DynamicObj * [<Optional; DefaultParameterValue ((null :> obj))>] ?Layer: Layer * [<Optional; DefaultParameterValue ((null :> obj))>] ?Domain: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?Position: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?UIRevision: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSlider: RangeSlider * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSelector: RangeSelector * [<Optional; DefaultParameterValue ((null :> obj))>] ?Calendar: Calendar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayDTick: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayTick0: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?CheaterType: CheaterType * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPadding: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridCount: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Smoothing: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?BackgroundColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowBackground: bool -> (LinearAxis -> LinearAxis)
<summary>Linear axes can be used as x and y scales on 2D plots, and as x,y, and z scales on 3D plots.</summary>
--------------------
new: unit -> LinearAxis
type Layout = inherit DynamicObj new: unit -> Layout static member combine: first: Layout -> second: Layout -> Layout static member getColorAxes: layout: Layout -> (string * ColorAxis) seq static member getColorAxisById: id: SubPlotId -> (Layout -> ColorAxis) static member getGeoById: id: SubPlotId -> (Layout -> Geo) static member getGeos: layout: Layout -> (string * Geo) seq static member getLayoutGrid: layout: Layout -> LayoutGrid static member getLegendById: id: SubPlotId -> (Layout -> Legend) static member getLegends: layout: Layout -> (string * Legend) seq ...
<summary> A Layout object in the context of plotly charts contains all styling options that are not directly related to the visualization of the data itself, such as axes, legends, watermarks, etc. </summary>
--------------------
new: unit -> Layout
type Trace = inherit DynamicObj new: traceTypeName: string -> Trace static member getColorAxisAnchor: trace: #Trace -> SubPlotId static member getColorBar: trace: #Trace -> ColorBar static member getDomain: trace: #Trace -> Domain static member getLegendAnchor: trace: #Trace -> SubPlotId static member getLine: trace: #Trace -> Line static member getMarker: trace: #Trace -> Marker static member getStackGroup: trace: #Trace -> string static member getXError: trace: #Trace -> Error ...
<summary> A Trace object in the context of plotly charts contains the data to visualize and additional styling parameters. This is the base object that contains visualization-unspecific getters and setters for the underlying DynamicObj. Visualization-specific equivalents are suffixed with the respective trace subtype, e.g. `Trace2D` </summary>
--------------------
new: traceTypeName: string -> Trace