Skip to content
Merged
2 changes: 1 addition & 1 deletion docs/02_0_line-scatter-plots.fsx
Original file line numberDiff line numberDiff line change
Expand Up@@ -52,7 +52,7 @@ let line1 =
x,y,
Name="line",
ShowMarkers=true,
MarkerSymbol=StyleParam.Symbol.Square)
MarkerSymbol=StyleParam.MarkerSymbol.Square)
|> Chart.withLineStyle(Width=2.,Dash=StyleParam.DrawingStyle.Dot)

(*** condition: ipynb ***)
Expand Down
98 changes: 60 additions & 38 deletions docs/index.fsx
Original file line numberDiff line numberDiff line change
Expand Up@@ -219,17 +219,28 @@ One of the main design points of Plotly.NET it is to provide support for multipl
### Fluent interface style in C#:

```
static void Main(string[] args)
using System;
using Plotly.NET;
using Microsoft.FSharp.Core; // use this for less verbose and more helpful intellisense

namespace Plotly.NET.Tests.CSharp
{
double[] x = new double[] { 1, 2 };
double[] y = new double[] { 5, 10 };
GenericChart.GenericChart chart = Chart.Point(x: x, y: y);
chart
.WithTraceName("Hello from C#", true)
.withXAxisStyle(title: "xAxis", Showgrid: false, Showline: true)
.withYAxisStyle(title: "yAxis", Showgrid: false, Showline: true)
.Show();
class Program
{
static void Main(string[] args)
{
double[] x = new double[] { 1, 2 };
double[] y = new double[] { 5, 10 };
GenericChart.GenericChart chart = Chart2D.Chart.Point<double, double, string>(x: x, y: y);
chart
.WithTraceName("Hello from C#", true)
.WithXAxisStyle(title: Title.init("xAxis"), ShowGrid: false, ShowLine: true)
.WithYAxisStyle(title: Title.init("yAxis"), ShowGrid: false, ShowLine: true)
.Show();
}
}
}

```

### Declarative style in F# using the underlying `DynamicObj`:
Expand DownExpand Up@@ -273,36 +284,47 @@ GenericChart.ofTraceObject(trace)
### Declarative style in C# using the underlying `DynamicObj`:

```
static void Main(string[] args)
using System;
using Plotly.NET;
using Microsoft.FSharp.Core; // use this for less verbose and more helpful intellisense
using Plotly.NET.LayoutObjects;

namespace Plotly.NET.Tests.CSharp
{
double[] x = new double[] { 1, 2 };
double[] y = new double[] { 5, 10 };

Axis.LinearAxis xAxis = new Axis.LinearAxis();
xAxis.SetValue("title", "xAxis");
xAxis.SetValue("showgrid", false);
xAxis.SetValue("showline", true);

Axis.LinearAxis yAxis = new Axis.LinearAxis();
yAxis.SetValue("title", "yAxis");
yAxis.SetValue("showgrid", false);
yAxis.SetValue("showline", true);

Layout layout = new Layout();
layout.SetValue("xaxis", xAxis);
layout.SetValue("yaxis", yAxis);
layout.SetValue("showlegend", true);

Trace trace = new Trace("scatter");
trace.SetValue("x", x);
trace.SetValue("y", y);
trace.SetValue("mode", "markers");
trace.SetValue("name", "Hello from C#");

GenericChart
.ofTraceObject(trace)
.WithLayout(layout)
.Show();
class Program
{
static void Main(string[] args)
{
double[] x = new double[] { 1, 2 };
double[] y = new double[] { 5, 10 };

LinearAxis xAxis = new LinearAxis();
xAxis.SetValue("title", "xAxis");
xAxis.SetValue("showgrid", false);
xAxis.SetValue("showline", true);

LinearAxis yAxis = new LinearAxis();
yAxis.SetValue("title", "yAxis");
yAxis.SetValue("showgrid", false);
yAxis.SetValue("showline", true);

Layout layout = new Layout();
layout.SetValue("xaxis", xAxis);
layout.SetValue("yaxis", yAxis);
layout.SetValue("showlegend", true);

Trace trace = new Trace("scatter");
trace.SetValue("x", x);
trace.SetValue("y", y);
trace.SetValue("mode", "markers");
trace.SetValue("name", "Hello from C#");

GenericChart
.ofTraceObject(trace)
.WithLayout(layout)
.Show();
}
}
}
```

Expand Down
2 changes: 1 addition & 1 deletion src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -37,7 +37,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="DynamicObj" Version="0.0.3" />
<PackageReference Include="DynamicObj" Version="0.2.0" />
<PackageReference Include="PuppeteerSharp" Version="4.0.0" />
</ItemGroup>

Expand Down
60 changes: 52 additions & 8 deletions src/Plotly.NET/CSharpLayer/GenericChartExtensions.fs
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,17 +48,61 @@ module GenericChartExtensions =
[<Extension>]
member this.WithMarkerStyle
(
[<Optional;DefaultParameterValue(null)>] ?Size,
[<Optional;DefaultParameterValue(null)>] ?Color,
[<Optional;DefaultParameterValue(null)>] ?Symbol,
[<Optional;DefaultParameterValue(null)>] ?Opacity
[<Optional;DefaultParameterValue(null)>] ?AutoColorScale : bool,
[<Optional;DefaultParameterValue(null)>] ?CAuto : bool,
[<Optional;DefaultParameterValue(null)>] ?CMax : float,
[<Optional;DefaultParameterValue(null)>] ?CMid : float,
[<Optional;DefaultParameterValue(null)>] ?CMin : float,
[<Optional;DefaultParameterValue(null)>] ?Color : Color,
[<Optional;DefaultParameterValue(null)>] ?Colors : seq<Color>,
[<Optional;DefaultParameterValue(null)>] ?ColorAxis : StyleParam.SubPlotId,
[<Optional;DefaultParameterValue(null)>] ?ColorBar : ColorBar,
[<Optional;DefaultParameterValue(null)>] ?Colorscale : StyleParam.Colorscale,
[<Optional;DefaultParameterValue(null)>] ?Gradient : Gradient,
[<Optional;DefaultParameterValue(null)>] ?Outline : Line,
[<Optional;DefaultParameterValue(null)>] ?Size : int,
[<Optional;DefaultParameterValue(null)>] ?MultiSize : seq<int>,
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
[<Optional;DefaultParameterValue(null)>] ?Pattern : Pattern,
[<Optional;DefaultParameterValue(null)>] ?Symbol : StyleParam.MarkerSymbol,
[<Optional;DefaultParameterValue(null)>] ?MultiSymbols : seq<StyleParam.MarkerSymbol>,
[<Optional;DefaultParameterValue(null)>] ?OutlierColor : Color,
[<Optional;DefaultParameterValue(null)>] ?Maxdisplayed : int,
[<Optional;DefaultParameterValue(null)>] ?ReverseScale : bool,
[<Optional;DefaultParameterValue(null)>] ?ShowScale : bool,
[<Optional;DefaultParameterValue(null)>] ?SizeMin : int,
[<Optional;DefaultParameterValue(null)>] ?SizeMode : StyleParam.MarkerSizeMode,
[<Optional;DefaultParameterValue(null)>] ?SizeRef : int
) =
this
|> Chart.withMarkerStyle(
?Size=Size,
?Color=Color,
?Symbol=Symbol,
?Opacity=Opacity
?AutoColorScale = AutoColorScale ,
?CAuto = CAuto ,
?CMax = CMax ,
?CMid = CMid ,
?CMin = CMin ,
?Color = Color ,
?Colors = Colors ,
?ColorAxis = ColorAxis ,
?ColorBar = ColorBar ,
?Colorscale = Colorscale ,
?Gradient = Gradient ,
?Outline = Outline ,
?Size = Size ,
?MultiSize = MultiSize ,
?Opacity = Opacity ,
?MultiOpacity = MultiOpacity ,
?Pattern = Pattern ,
?Symbol = Symbol ,
?MultiSymbols = MultiSymbols ,
?OutlierColor = OutlierColor ,
?Maxdisplayed = Maxdisplayed ,
?ReverseScale = ReverseScale ,
?ShowScale = ShowScale ,
?SizeMin = SizeMin ,
?SizeMode = SizeMode ,
?SizeRef = SizeRef
)

/// Apply styling to the Line(s) of the chart as Object.
Expand Down
80 changes: 69 additions & 11 deletions src/Plotly.NET/ChartAPI/Chart.fs
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,16 +121,65 @@ type Chart =
[<CompiledName("WithMarkerStyle")>]
static member withMarkerStyle
(
[<Optional;DefaultParameterValue(null)>] ?Size,
[<Optional;DefaultParameterValue(null)>] ?Color,
[<Optional;DefaultParameterValue(null)>] ?Symbol,
[<Optional;DefaultParameterValue(null)>] ?Opacity
[<Optional;DefaultParameterValue(null)>] ?AutoColorScale : bool,
[<Optional;DefaultParameterValue(null)>] ?CAuto : bool,
[<Optional;DefaultParameterValue(null)>] ?CMax : float,
[<Optional;DefaultParameterValue(null)>] ?CMid : float,
[<Optional;DefaultParameterValue(null)>] ?CMin : float,
[<Optional;DefaultParameterValue(null)>] ?Color : Color,
[<Optional;DefaultParameterValue(null)>] ?Colors : seq<Color>,
[<Optional;DefaultParameterValue(null)>] ?ColorAxis : StyleParam.SubPlotId,
[<Optional;DefaultParameterValue(null)>] ?ColorBar : ColorBar,
[<Optional;DefaultParameterValue(null)>] ?Colorscale : StyleParam.Colorscale,
[<Optional;DefaultParameterValue(null)>] ?Gradient : Gradient,
[<Optional;DefaultParameterValue(null)>] ?Outline : Line,
[<Optional;DefaultParameterValue(null)>] ?Size : int,
[<Optional;DefaultParameterValue(null)>] ?MultiSize : seq<int>,
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
[<Optional;DefaultParameterValue(null)>] ?Pattern : Pattern,
[<Optional;DefaultParameterValue(null)>] ?Symbol : StyleParam.MarkerSymbol,
[<Optional;DefaultParameterValue(null)>] ?MultiSymbols : seq<StyleParam.MarkerSymbol>,
[<Optional;DefaultParameterValue(null)>] ?OutlierColor : Color,
[<Optional;DefaultParameterValue(null)>] ?Maxdisplayed : int,
[<Optional;DefaultParameterValue(null)>] ?ReverseScale : bool,
[<Optional;DefaultParameterValue(null)>] ?ShowScale : bool,
[<Optional;DefaultParameterValue(null)>] ?SizeMin : int,
[<Optional;DefaultParameterValue(null)>] ?SizeMode : StyleParam.MarkerSizeMode,
[<Optional;DefaultParameterValue(null)>] ?SizeRef : int
) =
let marker =
Marker.init (
?Size=Size,?Color=Color,?Symbol=Symbol,?Opacity=Opacity
fun (ch:GenericChart) ->
ch
|> mapTrace (
TraceStyle.Marker(
?AutoColorScale = AutoColorScale,
?CAuto = CAuto ,
?CMax = CMax ,
?CMid = CMid ,
?CMin = CMin ,
?Color = Color ,
?Colors = Colors ,
?ColorAxis = ColorAxis ,
?ColorBar = ColorBar ,
?Colorscale = Colorscale ,
?Gradient = Gradient ,
?Outline = Outline ,
?Size = Size ,
?MultiSize = MultiSize ,
?Opacity = Opacity ,
?MultiOpacity = MultiOpacity,
?Pattern = Pattern,
?Symbol = Symbol ,
?MultiSymbols = MultiSymbols ,
?OutlierColor = OutlierColor ,
?Maxdisplayed = Maxdisplayed ,
?ReverseScale = ReverseScale ,
?ShowScale = ShowScale ,
?SizeMin = SizeMin ,
?SizeMode = SizeMode ,
?SizeRef = SizeRef
)
Chart.withMarker(marker)
)

/// Apply styling to the Line(s) of the chart as Object.
[<CompiledName("WithLine")>]
Expand All@@ -148,12 +197,21 @@ type Chart =
[<Optional;DefaultParameterValue(null)>] ?Shape,
[<Optional;DefaultParameterValue(null)>] ?Dash,
[<Optional;DefaultParameterValue(null)>] ?Smoothing,
[<Optional;DefaultParameterValue(null)>] ?Colorscale
[<Optional;DefaultParameterValue(null)>] ?Colorscale,
[<Optional;DefaultParameterValue(null)>] ?OutlierColor,
[<Optional;DefaultParameterValue(null)>] ?OutlierWidth
) =
let line =
Line.init (
?Width=Width,?Color=Color,?Shape=Shape,?Dash=Dash,?Smoothing=Smoothing,?Colorscale=Colorscale)

?Width = Width,
?Color = Color,
?Shape = Shape,
?Dash = Dash,
?Smoothing = Smoothing,
?Colorscale = Colorscale,
?OutlierColor = OutlierColor,
?OutlierWidth = OutlierWidth
)
Chart.withLine(line)

/// Apply styling to the xError(s) of the chart as Object
Expand Down
Loading