Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/02_0_line-scatter-plots.fsx
Original file line number Diff line number Diff 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 number Diff line number Diff 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 Down Expand 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 number Diff line number Diff 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 number Diff line number Diff 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 number Diff line number Diff 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