Skip to content

Commit 119d70f

Browse files
committed
Add Chart.PointCarpet
1 parent ec9a7c3 commit 119d70f

File tree

2 files changed

+130
-12
lines changed

2 files changed

+130
-12
lines changed

src/Plotly.NET/ChartAPI/ChartCarpet.fs

Lines changed: 113 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ module ChartCarpet =
6464
[<Extension>]
6565
static member ScatterCarpet
6666
(
67-
a : seq<#IConvertible>,
68-
b : seq<#IConvertible>,
69-
mode : StyleParam.Mode,
70-
[<Optional;DefaultParameterValue(null)>] ?CarpetId : string,
67+
a : seq<#IConvertible>,
68+
b : seq<#IConvertible>,
69+
mode : StyleParam.Mode,
70+
carpetAnchorId : string,
7171
[<Optional;DefaultParameterValue(null)>] ?Name : string,
7272
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
7373
[<Optional;DefaultParameterValue(null)>] ?MarkerSymbol : StyleParam.MarkerSymbol,
@@ -80,6 +80,8 @@ module ChartCarpet =
8080
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
8181
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
8282
[<Optional;DefaultParameterValue(null)>] ?TextFont : Font,
83+
[<Optional;DefaultParameterValue(null)>] ?Size : int,
84+
[<Optional;DefaultParameterValue(null)>] ?MultiSize : seq<int>,
8385
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
8486
[<Optional;DefaultParameterValue(null)>] ?Dash : StyleParam.DrawingStyle,
8587
[<Optional;DefaultParameterValue(null)>] ?Width : float ,
@@ -90,7 +92,7 @@ module ChartCarpet =
9092
A = a,
9193
B = b,
9294
Mode = mode,
93-
?Carpet = (CarpetId |> Option.map StyleParam.SubPlotId.Carpet),
95+
Carpet = (carpetAnchorId |> StyleParam.SubPlotId.Carpet),
9496
?Name = Name ,
9597
?ShowLegend = ShowLegend ,
9698
?Opacity = Opacity ,
@@ -107,7 +109,9 @@ module ChartCarpet =
107109
?MultiSymbol = MultiMarkerSymbol,
108110
?Color = Color ,
109111
?Opacity = Opacity ,
110-
?MultiOpacity = MultiOpacity
112+
?MultiOpacity = MultiOpacity ,
113+
?Size = Size,
114+
?MultiSize = MultiSize
111115
)
112116
>> TraceStyle.Line(
113117
?Dash = Dash,
@@ -123,7 +127,7 @@ module ChartCarpet =
123127
(
124128
ab : seq<#IConvertible*#IConvertible>,
125129
mode : StyleParam.Mode,
126-
[<Optional;DefaultParameterValue(null)>] ?CarpetId : string,
130+
carpetAnchorId : string,
127131
[<Optional;DefaultParameterValue(null)>] ?Name : string,
128132
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
129133
[<Optional;DefaultParameterValue(null)>] ?MarkerSymbol : StyleParam.MarkerSymbol,
@@ -136,6 +140,8 @@ module ChartCarpet =
136140
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
137141
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
138142
[<Optional;DefaultParameterValue(null)>] ?TextFont : Font,
143+
[<Optional;DefaultParameterValue(null)>] ?Size : int,
144+
[<Optional;DefaultParameterValue(null)>] ?MultiSize : seq<int>,
139145
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
140146
[<Optional;DefaultParameterValue(null)>] ?Dash : StyleParam.DrawingStyle,
141147
[<Optional;DefaultParameterValue(null)>] ?Width : float ,
@@ -144,8 +150,7 @@ module ChartCarpet =
144150
let a,b = Seq.unzip ab
145151

146152
Chart.ScatterCarpet(
147-
a,b,mode,
148-
?CarpetId = CarpetId,
153+
a, b, mode, carpetAnchorId,
149154
?Name = Name ,
150155
?ShowLegend = ShowLegend ,
151156
?MarkerSymbol = MarkerSymbol ,
@@ -158,8 +163,107 @@ module ChartCarpet =
158163
?TextPosition = TextPosition ,
159164
?MultiTextPosition = MultiTextPosition,
160165
?TextFont = TextFont ,
166+
?Size = Size ,
167+
?MultiSize = MultiSize ,
161168
?Marker = Marker ,
162169
?Dash = Dash ,
163170
?Width = Width ,
164171
?Line = Line
172+
)
173+
174+
175+
[<Extension>]
176+
static member PointCarpet
177+
(
178+
a : seq<#IConvertible>,
179+
b : seq<#IConvertible>,
180+
carpetAnchorId : string,
181+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
182+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
183+
[<Optional;DefaultParameterValue(null)>] ?MarkerSymbol : StyleParam.MarkerSymbol,
184+
[<Optional;DefaultParameterValue(null)>] ?MultiMarkerSymbol : seq<StyleParam.MarkerSymbol>,
185+
[<Optional;DefaultParameterValue(null)>] ?Color : Color,
186+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
187+
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
188+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
189+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
190+
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
191+
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
192+
[<Optional;DefaultParameterValue(null)>] ?TextFont : Font,
193+
[<Optional;DefaultParameterValue(null)>] ?Size : int,
194+
[<Optional;DefaultParameterValue(null)>] ?MultiSize : seq<int>,
195+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker
196+
) =
197+
198+
let changeMode = StyleParam.ModeUtils.showText (TextPosition.IsSome || TextFont.IsSome)
199+
200+
TraceCarpet.initScatterCarpet(
201+
TraceCarpetStyle.ScatterCarpet(
202+
A = a,
203+
B = b,
204+
Mode = changeMode StyleParam.Mode.Markers,
205+
Carpet = (carpetAnchorId |> StyleParam.SubPlotId.Carpet),
206+
?Name = Name ,
207+
?ShowLegend = ShowLegend ,
208+
?Opacity = Opacity ,
209+
?Text = Text ,
210+
?MultiText = MultiText ,
211+
?TextPosition = TextPosition ,
212+
?MultiTextPosition = MultiTextPosition,
213+
?TextFont = TextFont ,
214+
?Marker = Marker
215+
)
216+
>> TraceStyle.Marker(
217+
?Symbol = MarkerSymbol ,
218+
?MultiSymbol = MultiMarkerSymbol,
219+
?Color = Color ,
220+
?Opacity = Opacity ,
221+
?MultiOpacity = MultiOpacity ,
222+
?Size = Size ,
223+
?MultiSize = MultiSize
224+
)
225+
)
226+
|> GenericChart.ofTraceObject
227+
228+
[<Extension>]
229+
static member PointCarpet
230+
(
231+
ab : seq<#IConvertible*#IConvertible>,
232+
carpetAnchorId : string,
233+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
234+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
235+
[<Optional;DefaultParameterValue(null)>] ?MarkerSymbol : StyleParam.MarkerSymbol,
236+
[<Optional;DefaultParameterValue(null)>] ?MultiMarkerSymbol : seq<StyleParam.MarkerSymbol>,
237+
[<Optional;DefaultParameterValue(null)>] ?Color : Color,
238+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
239+
[<Optional;DefaultParameterValue(null)>] ?MultiOpacity : seq<float>,
240+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
241+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
242+
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
243+
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
244+
[<Optional;DefaultParameterValue(null)>] ?TextFont : Font,
245+
[<Optional;DefaultParameterValue(null)>] ?Size : int,
246+
[<Optional;DefaultParameterValue(null)>] ?MultiSize : seq<int>,
247+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker
248+
) =
249+
250+
let a,b = Seq.unzip ab
251+
252+
Chart.PointCarpet(
253+
a, b, carpetAnchorId,
254+
?Name = Name ,
255+
?ShowLegend = ShowLegend ,
256+
?MarkerSymbol = MarkerSymbol ,
257+
?MultiMarkerSymbol = MultiMarkerSymbol ,
258+
?Color = Color ,
259+
?Opacity = Opacity ,
260+
?MultiOpacity = MultiOpacity ,
261+
?Text = Text ,
262+
?MultiText = MultiText ,
263+
?TextPosition = TextPosition ,
264+
?MultiTextPosition = MultiTextPosition ,
265+
?TextFont = TextFont ,
266+
?Size = Size ,
267+
?MultiSize = MultiSize ,
268+
?Marker = Marker
165269
)

src/Plotly.NET/Playground.fsx

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

162+
let a = [4.; 5.; 5.; 6.]
163+
let b = [1.; 1.; 2.; 3.]
164+
162165
[
163166
Chart.Carpet(
164167
"carpet1",
@@ -173,11 +176,22 @@ open System.IO
173176
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.))
174177
)
175178
Chart.ScatterCarpet(
176-
[4.; 5.; 5.; 6.],
177-
[1.; 1.; 2.; 3.],
179+
a,b,
178180
StyleParam.Mode.Lines_Markers,
179-
CarpetId = "carpet2"
181+
"carpet1",
182+
Name = "Scatter",
183+
MultiMarkerSymbol =[
184+
StyleParam.MarkerSymbol.ArrowDown
185+
StyleParam.MarkerSymbol.TriangleNW
186+
StyleParam.MarkerSymbol.DiamondX
187+
StyleParam.MarkerSymbol.Hexagon2
188+
],
189+
MultiSize = [
190+
10; 15; 20; 25
191+
],
192+
Color = Color.fromColors ([Red; Blue; Green; Yellow] |> List.map Color.fromKeyword)
180193
)
194+
Chart.PointCarpet(a,b,"carpet2",Name = "Point")
181195
]
182196
|> Chart.combine
183197
|> Chart.show

0 commit comments

Comments
 (0)