Skip to content

Commit e177eeb

Browse files
committed
Add Chart.ContourCarpet
1 parent e8f4bb0 commit e177eeb

File tree

4 files changed

+228
-3
lines changed

4 files changed

+228
-3
lines changed

src/Plotly.NET/ChartAPI/ChartCarpet.fs

Lines changed: 91 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -588,4 +588,94 @@ module ChartCarpet =
588588
?MultiTextPosition = MultiTextPosition,
589589
?TextFont = TextFont ,
590590
?Marker = Marker
591-
)
591+
)
592+
593+
static member ContourCarpet
594+
(
595+
carpetAnchorId : string,
596+
z : seq<#IConvertible>,
597+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
598+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend: bool,
599+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
600+
[<Optional;DefaultParameterValue(null)>] ?A : seq<#IConvertible>,
601+
[<Optional;DefaultParameterValue(null)>] ?B : seq<#IConvertible>,
602+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
603+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
604+
[<Optional;DefaultParameterValue(null)>] ?Dash : StyleParam.DrawingStyle,
605+
[<Optional;DefaultParameterValue(null)>] ?Width : float ,
606+
[<Optional;DefaultParameterValue(null)>] ?LineColor : Color ,
607+
[<Optional;DefaultParameterValue(null)>] ?Line : Line,
608+
[<Optional;DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale,
609+
[<Optional;DefaultParameterValue(null)>] ?ShowScale : bool,
610+
[<Optional;DefaultParameterValue(null)>] ?Contours : Contours
611+
) =
612+
TraceCarpet.initContourCarpet(
613+
TraceCarpetStyle.ContourCarpet (
614+
Carpet = StyleParam.SubPlotId.Carpet carpetAnchorId,
615+
?Name = Name ,
616+
?ShowLegend = ShowLegend ,
617+
?Opacity = Opacity ,
618+
Z = z ,
619+
?A = A ,
620+
?B = B ,
621+
?Text = Text ,
622+
?MultiText = MultiText ,
623+
?Line = Line ,
624+
?ColorScale = ColorScale ,
625+
?ShowScale = ShowScale ,
626+
?Contours = Contours
627+
)
628+
>> TraceStyle.Line(
629+
?Dash = Dash ,
630+
?Width = Width ,
631+
?Color = LineColor
632+
)
633+
)
634+
|> GenericChart.ofTraceObject
635+
636+
637+
static member ContourCarpet
638+
(
639+
carpetAnchorId : string,
640+
abz : seq<#IConvertible * #IConvertible * #IConvertible>,
641+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
642+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend: bool,
643+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
644+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
645+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
646+
[<Optional;DefaultParameterValue(null)>] ?Dash : StyleParam.DrawingStyle,
647+
[<Optional;DefaultParameterValue(null)>] ?Width : float ,
648+
[<Optional;DefaultParameterValue(null)>] ?LineColor : Color ,
649+
[<Optional;DefaultParameterValue(null)>] ?Line : Line,
650+
[<Optional;DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale,
651+
[<Optional;DefaultParameterValue(null)>] ?ShowScale : bool,
652+
[<Optional;DefaultParameterValue(null)>] ?Contours : Contours
653+
) =
654+
655+
let a,b,z = Seq.unzip3 abz
656+
657+
TraceCarpet.initContourCarpet(
658+
TraceCarpetStyle.ContourCarpet (
659+
Carpet = StyleParam.SubPlotId.Carpet carpetAnchorId,
660+
?Name = Name ,
661+
?ShowLegend = ShowLegend ,
662+
?Opacity = Opacity ,
663+
Z = z ,
664+
A = a ,
665+
B = b ,
666+
?Text = Text ,
667+
?MultiText = MultiText ,
668+
?Line = Line ,
669+
?ColorScale = ColorScale ,
670+
?ShowScale = ShowScale ,
671+
?Contours = Contours
672+
)
673+
>> TraceStyle.Line(
674+
?Dash = Dash ,
675+
?Width = Width ,
676+
?Color = LineColor
677+
)
678+
)
679+
|> GenericChart.ofTraceObject
680+
681+

src/Plotly.NET/CommonAbstractions/StyleParams.fs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,19 @@ module StyleParam =
317317
//--------------------------
318318

319319

320+
[<RequireQualifiedAccess>]
321+
type CoordinateType =
322+
| Array
323+
| Scaled
324+
325+
static member toString = function
326+
| Array -> "array"
327+
| Scaled -> "scaled"
328+
329+
static member convert = CoordinateType.toString >> box
330+
override this.ToString() = this |> CoordinateType.toString
331+
member this.Convert() = this |> CoordinateType.convert
332+
320333
[<RequireQualifiedAccess>]
321334
type CheaterType =
322335
| Index

src/Plotly.NET/Playground.fsx

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,36 @@ let a = [4.; 5.; 5.; 6.]
163163
let b = [1.; 1.; 2.; 3.]
164164
let sizes = [5; 10; 15; 20]
165165

166+
[
167+
Chart.Carpet(
168+
"contour",
169+
A = [0.; 1.; 2.; 3.; 0.; 1.; 2.; 3.; 0.; 1.; 2.; 3.],
170+
B = [4.; 4.; 4.; 4.; 5.; 5.; 5.; 5.; 6.; 6.; 6.; 6.],
171+
X = [2.; 3.; 4.; 5.; 2.2; 3.1; 4.1; 5.1; 1.5; 2.5; 3.5; 4.5],
172+
Y = [1.; 1.4; 1.6; 1.75; 2.; 2.5; 2.7; 2.75; 3.; 3.5; 3.7; 3.75],
173+
AAxis = LinearAxis.initCarpet(
174+
TickPrefix = "a = ",
175+
Smoothing = 0.,
176+
MinorGridCount = 9,
177+
AxisType = StyleParam.AxisType.Linear
178+
),
179+
BAxis = LinearAxis.initCarpet(
180+
TickPrefix = "b = ",
181+
Smoothing = 0.,
182+
MinorGridCount = 9,
183+
AxisType = StyleParam.AxisType.Linear
184+
)
185+
)
186+
Chart.ContourCarpet(
187+
"contour",
188+
A = [0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3],
189+
B = [4; 4; 4; 4; 5; 5; 5; 5; 6; 6; 6; 6],
190+
Z = [1.; 1.96; 2.56; 3.0625; 4.; 5.0625; 1.; 7.5625; 9.; 12.25; 15.21; 14.0625]
191+
)
192+
]
193+
|> Chart.combine
194+
|> Chart.show
195+
166196
let carpets =
167197
[
168198
Chart.Carpet(
@@ -194,7 +224,7 @@ let carpets =
194224
A= ([4.; 4.; 4.; 4.5; 4.5; 4.5; 5.; 5.; 5.; 6.; 6.; 6.] |> List.rev),
195225
B= ([1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.; 1.; 2.; 3.]|> List.rev),
196226
Y= ([2.; 3.5; 4.; 3.; 4.5; 5.; 5.5; 6.5; 7.5; 8.; 8.5; 10.] |> List.map (fun x -> x + 40.))
197-
)
227+
)
198228
]
199229
|> Chart.combine
200230

src/Plotly.NET/Traces/TraceCarpet.fs

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,96 @@ type TraceCarpetStyle() =
179179
HoverOn |> DynObj.setValueOptBy trace "hoveron" StyleParam.HoverOn.convert
180180
UIRevision |> DynObj.setValueOpt trace "uirevision"
181181

182-
trace
182+
trace
183+
184+
static member ContourCarpet
185+
(
186+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
187+
[<Optional;DefaultParameterValue(null)>] ?Visible : StyleParam.Visible,
188+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
189+
[<Optional;DefaultParameterValue(null)>] ?LegendRank : int,
190+
[<Optional;DefaultParameterValue(null)>] ?LegendGroup : string,
191+
[<Optional;DefaultParameterValue(null)>] ?LegendGroupTitle : Title,
192+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
193+
[<Optional;DefaultParameterValue(null)>] ?Ids : seq<#IConvertible>,
194+
[<Optional;DefaultParameterValue(null)>] ?Z : seq<#IConvertible>,
195+
[<Optional;DefaultParameterValue(null)>] ?A : seq<#IConvertible>,
196+
[<Optional;DefaultParameterValue(null)>] ?AType : StyleParam.CoordinateType,
197+
[<Optional;DefaultParameterValue(null)>] ?A0 : #IConvertible,
198+
[<Optional;DefaultParameterValue(null)>] ?DA : #IConvertible,
199+
[<Optional;DefaultParameterValue(null)>] ?B : seq<#IConvertible>,
200+
[<Optional;DefaultParameterValue(null)>] ?BType : StyleParam.CoordinateType,
201+
[<Optional;DefaultParameterValue(null)>] ?B0 : #IConvertible,
202+
[<Optional;DefaultParameterValue(null)>] ?DB : #IConvertible,
203+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
204+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
205+
[<Optional;DefaultParameterValue(null)>] ?HoverText : string,
206+
[<Optional;DefaultParameterValue(null)>] ?MultiHoverText : seq<string>,
207+
[<Optional;DefaultParameterValue(null)>] ?Meta : string,
208+
[<Optional;DefaultParameterValue(null)>] ?CustomData : seq<#IConvertible>,
209+
[<Optional;DefaultParameterValue(null)>] ?XAxis : StyleParam.LinearAxisId,
210+
[<Optional;DefaultParameterValue(null)>] ?YAxis : StyleParam.LinearAxisId,
211+
[<Optional;DefaultParameterValue(null)>] ?ColorAxis : StyleParam.SubPlotId,
212+
[<Optional;DefaultParameterValue(null)>] ?Line : Line,
213+
[<Optional;DefaultParameterValue(null)>] ?ColorBar : ColorBar,
214+
[<Optional;DefaultParameterValue(null)>] ?AutoColorScale : bool,
215+
[<Optional;DefaultParameterValue(null)>] ?ColorScale : StyleParam.Colorscale,
216+
[<Optional;DefaultParameterValue(null)>] ?ShowScale : bool,
217+
[<Optional;DefaultParameterValue(null)>] ?ReverseScale : bool,
218+
[<Optional;DefaultParameterValue(null)>] ?ZAuto : bool,
219+
[<Optional;DefaultParameterValue(null)>] ?ZMax : #IConvertible,
220+
[<Optional;DefaultParameterValue(null)>] ?ZMid : #IConvertible,
221+
[<Optional;DefaultParameterValue(null)>] ?ZMin : #IConvertible,
222+
[<Optional;DefaultParameterValue(null)>] ?AutoContour : bool,
223+
[<Optional;DefaultParameterValue(null)>] ?Carpet : StyleParam.SubPlotId,
224+
[<Optional;DefaultParameterValue(null)>] ?Contours : Contours,
225+
[<Optional;DefaultParameterValue(null)>] ?FillColor : Color,
226+
[<Optional;DefaultParameterValue(null)>] ?NContours : int,
227+
[<Optional;DefaultParameterValue(null)>] ?Transpose : bool,
228+
[<Optional;DefaultParameterValue(null)>] ?UIRevision : string
229+
) =
230+
fun (trace: #Trace) ->
231+
232+
Name |> DynObj.setValueOpt trace "name"
233+
Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert
234+
ShowLegend |> DynObj.setValueOpt trace "showlegend"
235+
LegendRank |> DynObj.setValueOpt trace "legendrank"
236+
LegendGroup |> DynObj.setValueOpt trace "legendgroup"
237+
LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle"
238+
Opacity |> DynObj.setValueOpt trace "opacity"
239+
Ids |> DynObj.setValueOpt trace "ids"
240+
Z |> DynObj.setValueOpt trace "z"
241+
A |> DynObj.setValueOpt trace "a"
242+
AType |> DynObj.setValueOptBy trace "atype" StyleParam.CoordinateType.convert
243+
A0 |> DynObj.setValueOpt trace "a0"
244+
DA |> DynObj.setValueOpt trace "da"
245+
B |> DynObj.setValueOpt trace "b"
246+
BType |> DynObj.setValueOptBy trace "btype" StyleParam.CoordinateType.convert
247+
B0 |> DynObj.setValueOpt trace "b0"
248+
DB |> DynObj.setValueOpt trace "db"
249+
(Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text"
250+
(HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext"
251+
Meta |> DynObj.setValueOpt trace "meta"
252+
CustomData |> DynObj.setValueOpt trace "customdata"
253+
XAxis |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.convert
254+
YAxis |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.convert
255+
ColorAxis |> DynObj.setValueOptBy trace "coloraxis" StyleParam.SubPlotId.convert
256+
Line |> DynObj.setValueOpt trace "line"
257+
ColorBar |> DynObj.setValueOpt trace "colorbar"
258+
AutoColorScale |> DynObj.setValueOpt trace "autocolorscale"
259+
ColorScale |> DynObj.setValueOptBy trace "colorscale" StyleParam.Colorscale.convert
260+
ShowScale |> DynObj.setValueOpt trace "showscale"
261+
ReverseScale |> DynObj.setValueOpt trace "reversescale"
262+
ZAuto |> DynObj.setValueOpt trace "zauto"
263+
ZMax |> DynObj.setValueOpt trace "zmax"
264+
ZMid |> DynObj.setValueOpt trace "zmid"
265+
ZMin |> DynObj.setValueOpt trace "zmin"
266+
AutoContour |> DynObj.setValueOpt trace "autocontour"
267+
Carpet |> DynObj.setValueOptBy trace "carpet" StyleParam.SubPlotId.convert
268+
Contours |> DynObj.setValueOpt trace "contours"
269+
FillColor |> DynObj.setValueOpt trace "fillcolor"
270+
NContours |> DynObj.setValueOpt trace "ncontours"
271+
Transpose |> DynObj.setValueOpt trace "transpose"
272+
UIRevision |> DynObj.setValueOpt trace "uirevision"
273+
274+
trace

0 commit comments

Comments
 (0)