Skip to content

Commit ec9a7c3

Browse files
committed
Add scattercarpet tracestyle/chart
1 parent baeb996 commit ec9a7c3

6 files changed

Lines changed: 220 additions & 21 deletions

File tree

src/Plotly.NET/ChartAPI/Chart.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ type Chart =
170170
?MultiOpacity = MultiOpacity,
171171
?Pattern = Pattern,
172172
?Symbol = Symbol ,
173-
?MultiSymbols = MultiSymbols ,
173+
?MultiSymbol = MultiSymbols ,
174174
?OutlierColor = OutlierColor ,
175175
?Maxdisplayed = Maxdisplayed ,
176176
?ReverseScale = ReverseScale ,

src/Plotly.NET/ChartAPI/ChartCarpet.fs

Lines changed: 106 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ module ChartCarpet =
3434
[<Optional;DefaultParameterValue(null)>] ?B : seq<#IConvertible>,
3535
[<Optional;DefaultParameterValue(null)>] ?AAxis : LinearAxis,
3636
[<Optional;DefaultParameterValue(null)>] ?BAxis : LinearAxis,
37-
[<Optional;DefaultParameterValue(null)>] ?XAxis : StyleParam.SubPlotId,
38-
[<Optional;DefaultParameterValue(null)>] ?YAxis : StyleParam.SubPlotId,
37+
[<Optional;DefaultParameterValue(null)>] ?XAxis : StyleParam.LinearAxisId,
38+
[<Optional;DefaultParameterValue(null)>] ?YAxis : StyleParam.LinearAxisId,
3939
[<Optional;DefaultParameterValue(null)>] ?Color : Color,
4040
[<Optional;DefaultParameterValue(null)>] ?CheaterSlope : float
4141
) =
@@ -59,4 +59,107 @@ module ChartCarpet =
5959
?CheaterSlope = CheaterSlope
6060
)
6161
)
62-
|> GenericChart.ofTraceObject
62+
|> GenericChart.ofTraceObject
63+
64+
[<Extension>]
65+
static member ScatterCarpet
66+
(
67+
a : seq<#IConvertible>,
68+
b : seq<#IConvertible>,
69+
mode : StyleParam.Mode,
70+
[<Optional;DefaultParameterValue(null)>] ?CarpetId : string,
71+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
72+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
73+
[<Optional;DefaultParameterValue(null)>] ?MarkerSymbol : StyleParam.MarkerSymbol,
74+
[<Optional;DefaultParameterValue(null)>] ?MultiMarkerSymbol : seq<StyleParam.MarkerSymbol>,
75+
[<Optional;DefaultParameterValue(null)>] ?Color : Color,
76+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
77+
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
78+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
79+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
80+
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
81+
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
82+
[<Optional;DefaultParameterValue(null)>] ?TextFont : Font,
83+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
84+
[<Optional;DefaultParameterValue(null)>] ?Dash : StyleParam.DrawingStyle,
85+
[<Optional;DefaultParameterValue(null)>] ?Width : float ,
86+
[<Optional;DefaultParameterValue(null)>] ?Line : Line
87+
) =
88+
TraceCarpet.initScatterCarpet(
89+
TraceCarpetStyle.ScatterCarpet(
90+
A = a,
91+
B = b,
92+
Mode = mode,
93+
?Carpet = (CarpetId |> Option.map StyleParam.SubPlotId.Carpet),
94+
?Name = Name ,
95+
?ShowLegend = ShowLegend ,
96+
?Opacity = Opacity ,
97+
?Text = Text ,
98+
?MultiText = MultiText ,
99+
?TextPosition = TextPosition ,
100+
?MultiTextPosition = MultiTextPosition,
101+
?TextFont = TextFont ,
102+
?Marker = Marker ,
103+
?Line = Line
104+
)
105+
>> TraceStyle.Marker(
106+
?Symbol = MarkerSymbol ,
107+
?MultiSymbol = MultiMarkerSymbol,
108+
?Color = Color ,
109+
?Opacity = Opacity ,
110+
?MultiOpacity = MultiOpacity
111+
)
112+
>> TraceStyle.Line(
113+
?Dash = Dash,
114+
?Width = Width,
115+
?Color = Color
116+
)
117+
118+
)
119+
|> GenericChart.ofTraceObject
120+
121+
[<Extension>]
122+
static member ScatterCarpet
123+
(
124+
ab : seq<#IConvertible*#IConvertible>,
125+
mode : StyleParam.Mode,
126+
[<Optional;DefaultParameterValue(null)>] ?CarpetId : string,
127+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
128+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
129+
[<Optional;DefaultParameterValue(null)>] ?MarkerSymbol : StyleParam.MarkerSymbol,
130+
[<Optional;DefaultParameterValue(null)>] ?MultiMarkerSymbol : seq<StyleParam.MarkerSymbol>,
131+
[<Optional;DefaultParameterValue(null)>] ?Color : Color,
132+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
133+
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
134+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
135+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
136+
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
137+
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
138+
[<Optional;DefaultParameterValue(null)>] ?TextFont : Font,
139+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
140+
[<Optional;DefaultParameterValue(null)>] ?Dash : StyleParam.DrawingStyle,
141+
[<Optional;DefaultParameterValue(null)>] ?Width : float ,
142+
[<Optional;DefaultParameterValue(null)>] ?Line : Line
143+
) =
144+
let a,b = Seq.unzip ab
145+
146+
Chart.ScatterCarpet(
147+
a,b,mode,
148+
?CarpetId = CarpetId,
149+
?Name = Name ,
150+
?ShowLegend = ShowLegend ,
151+
?MarkerSymbol = MarkerSymbol ,
152+
?MultiMarkerSymbol = MultiMarkerSymbol,
153+
?Color = Color ,
154+
?Opacity = Opacity ,
155+
?MultiOpacity = MultiOpacity ,
156+
?Text = Text ,
157+
?MultiText = MultiText ,
158+
?TextPosition = TextPosition ,
159+
?MultiTextPosition = MultiTextPosition,
160+
?TextFont = TextFont ,
161+
?Marker = Marker ,
162+
?Dash = Dash ,
163+
?Width = Width ,
164+
?Line = Line
165+
)

src/Plotly.NET/Playground.fsx

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -159,17 +159,32 @@ open FSharpAux
159159
open System
160160
open System.IO
161161

162-
Chart.Carpet(
163-
"carpet1",
164-
A= [4.; 4.; 4.; 4.5; 4.5; 4.5; 5.; 5.; 5.; 6.; 6.; 6.],
165-
B= [1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.],
166-
Y= [2.; 3.5; 4.; 3.; 4.5; 5.; 5.5; 6.5; 7.5; 8.; 8.5; 10.]
167-
)
162+
[
163+
Chart.Carpet(
164+
"carpet1",
165+
A= [4.; 4.; 4.; 4.5; 4.5; 4.5; 5.; 5.; 5.; 6.; 6.; 6.],
166+
B= [1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.],
167+
Y= [2.; 3.5; 4.; 3.; 4.5; 5.; 5.5; 6.5; 7.5; 8.; 8.5; 10.]
168+
)
169+
Chart.Carpet(
170+
"carpet2",
171+
A= ([4.; 4.; 4.; 4.5; 4.5; 4.5; 5.; 5.; 5.; 6.; 6.; 6.] |> List.rev),
172+
B= ([1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.]|> List.rev),
173+
Y= ([2.; 3.5; 4.; 3.; 4.5; 5.; 5.5; 6.5; 7.5; 8.; 8.5; 10.] |> List.map (fun x -> x + 10.))
174+
)
175+
Chart.ScatterCarpet(
176+
[4.; 5.; 5.; 6.],
177+
[1.; 1.; 2.; 3.],
178+
StyleParam.Mode.Lines_Markers,
179+
CarpetId = "carpet2"
180+
)
181+
]
182+
|> Chart.combine
168183
|> Chart.show
169184

170185
let crazyMarker =
171186
Marker.init(
172-
MultiSymbols = [
187+
MultiSymbol = [
173188
StyleParam.MarkerSymbol.ArrowBarDown
174189
StyleParam.MarkerSymbol.Modified(StyleParam.MarkerSymbol.DiamondCross, StyleParam.SymbolStyle.OpenDot)
175190
StyleParam.MarkerSymbol.Modified(StyleParam.MarkerSymbol.Square, StyleParam.SymbolStyle.Open)

src/Plotly.NET/Traces/ObjectAbstractions/Marker.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ type Marker () =
3131
[<Optional;DefaultParameterValue(null)>] ?Pattern : Pattern,
3232
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
3333
[<Optional;DefaultParameterValue(null)>] ?Symbol : StyleParam.MarkerSymbol,
34-
[<Optional;DefaultParameterValue(null)>] ?MultiSymbols : seq<StyleParam.MarkerSymbol>,
34+
[<Optional;DefaultParameterValue(null)>] ?MultiSymbol : seq<StyleParam.MarkerSymbol>,
3535
[<Optional;DefaultParameterValue(null)>] ?OutlierColor : Color,
3636
[<Optional;DefaultParameterValue(null)>] ?Maxdisplayed : int,
3737
[<Optional;DefaultParameterValue(null)>] ?ReverseScale : bool,
@@ -62,7 +62,7 @@ type Marker () =
6262
?Pattern = Pattern ,
6363
?MultiOpacity = MultiOpacity ,
6464
?Symbol = Symbol ,
65-
?MultiSymbols = MultiSymbols ,
65+
?MultiSymbol = MultiSymbol ,
6666
?OutlierColor = OutlierColor ,
6767
?Maxdisplayed = Maxdisplayed ,
6868
?ReverseScale = ReverseScale ,
@@ -93,7 +93,7 @@ type Marker () =
9393
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
9494
[<Optional;DefaultParameterValue(null)>] ?Pattern : Pattern,
9595
[<Optional;DefaultParameterValue(null)>] ?Symbol : StyleParam.MarkerSymbol,
96-
[<Optional;DefaultParameterValue(null)>] ?MultiSymbols : seq<StyleParam.MarkerSymbol>,
96+
[<Optional;DefaultParameterValue(null)>] ?MultiSymbol : seq<StyleParam.MarkerSymbol>,
9797
[<Optional;DefaultParameterValue(null)>] ?OutlierColor : Color,
9898
[<Optional;DefaultParameterValue(null)>] ?Maxdisplayed : int,
9999
[<Optional;DefaultParameterValue(null)>] ?ReverseScale : bool,
@@ -119,7 +119,7 @@ type Marker () =
119119
(Size, MultiSize) |> DynObj.setSingleOrMultiOpt marker "size"
120120
(Opacity, MultiOpacity) |> DynObj.setSingleOrMultiOpt marker "opacity"
121121
Pattern |> DynObj.setValueOpt marker "pattern"
122-
(Symbol, MultiSymbols) |> DynObj.setSingleOrMultiOptBy marker "symbol" StyleParam.MarkerSymbol.convert
122+
(Symbol, MultiSymbol) |> DynObj.setSingleOrMultiOptBy marker "symbol" StyleParam.MarkerSymbol.convert
123123
OutlierColor |> DynObj.setValueOpt marker "outliercolor"
124124
Maxdisplayed |> DynObj.setValueOpt marker "maxdisplayed"
125125
ReverseScale |> DynObj.setValueOpt marker "reversescale"

src/Plotly.NET/Traces/Trace.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ type TraceStyle() =
154154
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
155155
[<Optional;DefaultParameterValue(null)>] ?Pattern : Pattern,
156156
[<Optional;DefaultParameterValue(null)>] ?Symbol : StyleParam.MarkerSymbol,
157-
[<Optional;DefaultParameterValue(null)>] ?MultiSymbols : seq<StyleParam.MarkerSymbol>,
157+
[<Optional;DefaultParameterValue(null)>] ?MultiSymbol : seq<StyleParam.MarkerSymbol>,
158158
[<Optional;DefaultParameterValue(null)>] ?OutlierColor : Color,
159159
[<Optional;DefaultParameterValue(null)>] ?Maxdisplayed : int,
160160
[<Optional;DefaultParameterValue(null)>] ?ReverseScale : bool,
@@ -187,7 +187,7 @@ type TraceStyle() =
187187
?MultiOpacity = MultiOpacity ,
188188
?Pattern = Pattern ,
189189
?Symbol = Symbol ,
190-
?MultiSymbols = MultiSymbols ,
190+
?MultiSymbol = MultiSymbol ,
191191
?OutlierColor = OutlierColor ,
192192
?Maxdisplayed = Maxdisplayed ,
193193
?ReverseScale = ReverseScale ,

0 commit comments

Comments
 (0)