Skip to content

Commit 7bc6ed8

Browse files
committed
2 parents 21a5e26 + ef763ac commit 7bc6ed8

File tree

8 files changed

+247
-19
lines changed

8 files changed

+247
-19
lines changed

FSharp.Plotly.sln

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Microsoft Visual Studio Solution File, Format Version 12.00
22
# Visual Studio 15
3-
VisualStudioVersion = 15.0.27004.2010
3+
VisualStudioVersion = 15.0.27130.2020
44
MinimumVisualStudioVersion = 10.0.40219.1
55
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{63297B98-5CED-492C-A5B7-A5B4F73CF142}"
66
ProjectSection(SolutionItems) = preProject
@@ -35,6 +35,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{8E6D
3535
docs\content\bar-charts.fsx = docs\content\bar-charts.fsx
3636
docs\content\box-plots.fsx = docs\content\box-plots.fsx
3737
docs\content\bubble-charts.fsx = docs\content\bubble-charts.fsx
38+
docs\content\choropleth-map.fsx = docs\content\choropleth-map.fsx
3839
docs\content\contour-plots.fsx = docs\content\contour-plots.fsx
3940
docs\content\errorbars.fsx = docs\content\errorbars.fsx
4041
docs\content\extensions.fsx = docs\content\extensions.fsx
@@ -50,6 +51,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{8E6D
5051
docs\content\polar-charts.fsx = docs\content\polar-charts.fsx
5152
docs\content\range-plots.fsx = docs\content\range-plots.fsx
5253
docs\content\shapes.fsx = docs\content\shapes.fsx
54+
docs\content\violin-plots.fsx = docs\content\violin-plots.fsx
5355
docs\content\windrose-charts.fsx = docs\content\windrose-charts.fsx
5456
EndProjectSection
5557
EndProject

docs/content/box-plots.fsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Outliers may be plotted as individual points.
1414
*)
1515

1616
open FSharp.Plotly
17+
open FSharp.Plotly.StyleParam
1718

1819
let y = [2.; 1.5; 5.; 1.5; 3.; 2.5; 2.5; 1.5; 3.5; 1.]
1920
let x = ["bin1";"bin2";"bin1";"bin2";"bin1";"bin2";"bin1";"bin1";"bin2";"bin1"]
@@ -22,6 +23,7 @@ let x = ["bin1";"bin2";"bin1";"bin2";"bin1";"bin2";"bin1";"bin1";"bin2";"bin1"]
2223
Chart.BoxPlot(x,y,Jitter=0.1,Boxpoints=StyleParam.Boxpoints.All)
2324
(*** include-it:box1 ***)
2425

26+
2527
(**
2628
By swapping x and y plus using `StyleParam.Orientation.Horizontal` we can flip the chart horizontaly.
2729
*)
@@ -46,5 +48,3 @@ let y' = [2.; 1.5; 5.; 1.5; 2.; 2.5; 2.1; 2.5; 1.5; 1.;2.; 1.5; 5.; 1.5; 3.; 2.
4648
(*** include-it:box3 ***)
4749

4850

49-
50-

docs/content/choropleth-map.fsx

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
(*** hide ***)
2+
#r "../../bin/Newtonsoft.Json.dll"
3+
#r "../../bin/FSharp.Plotly.dll"
4+
5+
(**
6+
# FSharp.Plotly: BoxPlot Charts
7+
8+
*Summary:* This example shows how to create boxplot charts in F#.
9+
10+
A box plot or boxplot is a convenient way of graphically depicting groups of numerical data through their quartiles.
11+
Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper
12+
and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.
13+
Outliers may be plotted as individual points.
14+
*)
15+
16+
open FSharp.Plotly
17+
18+
let locations,z =
19+
[("Belarus",17.5); ("Moldova",16.8);("Lithuania",15.4);("Russia",15.1);("Romania",14.4);("Ukraine",13.9);
20+
("Andorra",13.8);("Hungary",13.3);("Czech Republic",13.);("Slovakia",13.);("Portugal",12.9);("Serbia",12.6);
21+
("Grenada",12.5);("Poland",12.5);("Latvia",12.3);("Finland",12.3);("South Korea",12.3);("France",12.2);
22+
("Australia",12.2);("Croatia",12.2);("Ireland",11.9);("Luxembourg",11.9);("Germany",11.8);("Slovenia",11.6);
23+
("United Kingdom",11.6);("Denmark",11.4);("Bulgaria",11.4);("Spain",11.2);("Belgium",11.);("South Africa",11.);
24+
("New Zealand",10.9);("Gabon",10.9);("Namibia",10.8);("Switzerland",10.7);("Saint Lucia",10.4);
25+
("Austria",10.3);("Estonia",10.3);("Greece",10.3);("Kazakhstan",10.3);("Canada",10.2);("Nigeria",10.1);
26+
("Netherlands",9.9);("Uganda",9.8);("Rwanda",9.8);("Chile",9.6);("Argentina",9.3);("Burundi",9.3);
27+
("United States",9.2);("Cyprus",9.2);("Sweden",9.2);("Venezuela",8.9);("Paraguay",8.8);("Brazil",8.7);
28+
("Sierra Leone",8.7);("Montenegro",8.7);("Belize",8.5);("Cameroon",8.4);("Botswana",8.4);("Saint Kitts and Nevis",8.2);
29+
("Guyana",8.1);("Peru",8.1);("Panama",8.);("Niue",8.);("Palau",7.9);("Norway",7.7);("Tanzania",7.7);("Georgia",7.7);
30+
("Uruguay",7.6);("Angola",7.5);("Laos",7.3);("Japan",7.2);("Mexico",7.2);("Ecuador",7.2);("Dominica",7.1);
31+
("Iceland",7.1);("Thailand",7.1);("Bosnia and Herzegovina",7.1);("Sao Tome and Principe",7.1);("Malta",7.);
32+
("Albania",7.);("Bahamas",6.9);("Dominican Republic",6.9);("Mongolia",6.9);("Cape Verde",6.9);("Barbados",6.8);
33+
("Burkina Faso",6.8);("Italy",6.7);("Trinidad and Tobago",6.7);("China",6.7);("Macedonia",6.7);
34+
("Saint Vincent and the Grenadines",6.6);("Equatorial Guinea",6.6);("Suriname",6.6);("Vietnam",6.6);
35+
("Lesotho",6.5);("Haiti",6.4);("Cook Islands",6.4);("Colombia",6.2);("Ivory Coast",6.);("Bolivia",5.9);
36+
("Swaziland",5.7);("Zimbabwe",5.7);("Seychelles",5.6);("Cambodia",5.5);("Puerto Rico",5.4);("Netherlands Antilles",5.4);
37+
("Philippines",5.4);("Costa Rica",5.4);("Armenia",5.3);("Cuba",5.2);("Nicaragua",5.);("Jamaica",4.9);("Ghana",4.8);
38+
("Liberia",4.7);("Uzbekistan",4.6);("Chad",4.4);("United Arab Emirates",4.3);("Kyrgyzstan",4.3);
39+
("India",4.3);("Turkmenistan",4.3);("Kenya",4.3);("Ethiopia",4.2);("Honduras",4.);("Guinea-Bissau",4.);("Zambia",4.);
40+
("Republic of the Congo",3.9);("Guatemala",3.8);("Central African Republic",3.8);("North Korea",3.7);("Sri Lanka",3.7);
41+
("Mauritius",3.6);("Samoa",3.6);("Democratic Republic of the Congo",3.6);("Nauru",3.5);("Gambia",3.4);
42+
("Federated States of Micronesia",3.3);("El Salvador",3.2);("Fiji",3.);("Papua New Guinea",3.);("Kiribati",3.);
43+
("Tajikistan",2.8);("Israel",2.8);("Sudan",2.7);("Malawi",2.5);("Lebanon",2.4);("Azerbaijan",2.3);("Mozambique",2.3);
44+
("Togo",2.3);("Nepal",2.2);("Brunei",2.1);("Benin",2.1);("Singapore",2.);("Turkey",2.);("Madagascar",1.8);("Solomon Islands",1.7);
45+
("Tonga",1.6);("Tunisia",1.5);("Tuvalu",1.5);("Qatar",1.5);("Vanuatu",1.4);("Djibouti",1.3);("Malaysia",1.3);
46+
("Syria",1.2);("Maldives",1.2);("Mali",1.1);("Eritrea",1.1);("Algeria",1.);("Iran",1.);("Oman",0.9);("Brunei",0.9);
47+
("Morocco",0.9);("Jordan",0.7);("Bhutan",0.7);("Guinea",0.7);("Burma",0.7);("Afghanistan",0.7);("Senegal",0.6);
48+
("Indonesia",0.6);("Timor-Leste",0.6);("Iraq",0.5);("Somalia",0.5);("Egypt",0.4);("Niger",0.3);("Yemen",0.3);
49+
("Comoros",0.2);("Saudi Arabia",0.2);("Bangladesh",0.2);("Kuwait",0.1);("Libya",0.1);("Mauritania",0.1);("Pakistan",0.1);]
50+
|> List.unzip
51+
52+
Chart.ChoroplethMap(locations,z,Locationmode=StyleParam.LocationFormat.CountryNames)
53+
|> Chart.Show

docs/content/violin-plots.fsx

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
(*** hide ***)
2+
#r "../../bin/Newtonsoft.Json.dll"
3+
#r "../../bin/FSharp.Plotly.dll"
4+
5+
(**
6+
# FSharp.Plotly: BoxPlot Charts
7+
8+
*Summary:* This example shows how to create boxplot charts in F#.
9+
10+
A box plot or boxplot is a convenient way of graphically depicting groups of numerical data through their quartiles.
11+
Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper
12+
and lower quartiles, hence the terms box-and-whisker plot and box-and-whisker diagram.
13+
Outliers may be plotted as individual points.
14+
*)
15+
16+
open FSharp.Plotly
17+
open FSharp.Plotly.StyleParam
18+
19+
let y = [2.; 1.5; 5.; 1.5; 3.; 2.5; 2.5; 1.5; 3.5; 1.]
20+
let x = ["bin1";"bin2";"bin1";"bin2";"bin1";"bin2";"bin1";"bin1";"bin2";"bin1"]
21+
22+
23+
(*** define-output:violin1 ***)
24+
Chart.Violin (x,y,Points=StyleParam.Jitterpoints.All)
25+
(*** include-it:violin1 ***)
26+
27+
28+
29+
(**
30+
By swapping x and y plus using `StyleParam.Orientation.Horizontal` we can flip the chart horizontaly.
31+
*)
32+
(*** define-output:violin2 ***)
33+
Chart.Violin (y,x,Jitter=0.1,Points=StyleParam.Jitterpoints.All,Orientation=StyleParam.Orientation.Horizontal)
34+
(*** include-it:violin2 ***)
35+
36+
37+
38+
(**
39+
You can also produce a boxplot using the `Chart.Combine` syntax.
40+
*)
41+
42+
let y' = [2.; 1.5; 5.; 1.5; 2.; 2.5; 2.1; 2.5; 1.5; 1.;2.; 1.5; 5.; 1.5; 3.; 2.5; 2.5; 1.5; 3.5; 1.]
43+
44+
(*** define-output:violin3 ***)
45+
[
46+
Chart.Violin ("y" ,y,Name="bin1",Jitter=0.1,Points=StyleParam.Jitterpoints.All);
47+
Chart.Violin ("y'",y',Name="bin2",Jitter=0.1,Points=StyleParam.Jitterpoints.All);
48+
]
49+
|> Chart.Combine
50+
(*** include-it:violin3 ***)
51+
52+

docs/tools/templates/template.cshtml

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,38 +38,41 @@
3838
<div class="span3">
3939
<img src="@Root/img/logo.png" alt="FSharp.Plotly" style="width:150px;margin:10px" />
4040
<ul class="nav nav-list" id="menu" style="margin-top: 20px;">
41-
<li class="nav-header">@Properties["project-name"]</li>
41+
<li class="nav-header">@Properties["project-name"]</li>
4242
<li><a href="@Root/index.html">Home page</a></li>
43-
<li class="divider"></li>
43+
<li class="divider"></li>
4444
<li><a href="@Root/getting-started.html">Getting started</a></li>
45-
<li class="nav-header">Plotly Charts</li>
45+
<li class="nav-header">Plotly Charts</li>
4646
<li><a href="@Root/area-plots.html">Area Plots</a></li>
47-
<li><a href="@Root/bar-charts.html">Bar</a></li>
47+
<li><a href="@Root/bar-charts.html">Bar</a></li>
4848
<li><a href="@Root/box-plots.html">Box Plots</a></li>
49+
<li><a href="@Root/violin-plots.html">Violin Plots</a></li>
4950
<li><a href="@Root/bubble-charts.html">Bubble Charts</a></li>
5051
<li><a href="@Root/contour-plots.html">Contour Plots</a></li>
5152
<li><a href="@Root/heatmaps.html">Heatmaps</a></li>
5253
<li><a href="@Root/histograms.html">Histograms</a></li>
5354
<li><a href="@Root/2d-histograms.html">2D Histograms</a></li>
5455
<li><a href="@Root/line-scatter-plots.html">Line and Scatter Plots</a></li>
55-
<li><a href="@Root/parallel-coords.html">Parallel coords Plots</a></li>
56+
<li><a href="@Root/parallel-coords.html">Parallel coords Plots</a></li>
5657
<li><a href="@Root/pie-daughnut-charts.html">Pie and Doughnut Charts</a></li>
5758
<li><a href="@Root/polar-charts.html">Polar Charts</a></li>
5859
<li><a href="@Root/windrose-charts.html">Windrose Charts</a></li>
59-
<li><a href="@Root/range-plots.html">Range Plots</a></li>
60-
<li class="nav-header">Plotly 3d-Charts</li>
61-
<li><a href="@Root/3d-scatter-plots.html">3D Scatter Plots</a></li>
62-
<li><a href="@Root/3d-line-plots.html">3D Line Plots</a></li>
60+
<li><a href="@Root/range-plots.html">Range Plots</a></li>
61+
<li class="nav-header">Map Charts</li>
62+
<li><a href="@Root/choropleth-map.html">Choropleth</a></li>
63+
<li class="nav-header">Plotly 3d-Charts</li>
64+
<li><a href="@Root/3d-scatter-plots.html">3D Scatter Plots</a></li>
65+
<li><a href="@Root/3d-line-plots.html">3D Line Plots</a></li>
6366
<li><a href="@Root/3d-surface-plots.html">3D Surface Plots</a></li>
6467
<li><a href="@Root/3d-mesh-plots.html">3D Mesh Plots</a></li>
65-
<li class="nav-header">Styling</li>
68+
<li class="nav-header">Styling</li>
6669
<li><a href="@Root/multiple-charts.html">Multiple Charts</a></li>
67-
<li><a href="@Root/errorbars.html">Error bars</a></li>
70+
<li><a href="@Root/errorbars.html">Error bars</a></li>
6871
<li><a href="@Root/shapes.html">Shapes</a></li>
69-
<li class="nav-header">Plotly WPF</li>
70-
<li><a href="@Root/plotly-wpf.html">Using Plotly PopUp window</a></li>
72+
<li class="nav-header">Plotly WPF</li>
73+
<li><a href="@Root/plotly-wpf.html">Using Plotly PopUp window</a></li>
7174

72-
<li class="nav-header">Documentation</li>
75+
<li class="nav-header">Documentation</li>
7376
<li><a href="@Root/reference/index.html">API Reference</a></li>
7477
</ul>
7578
</div>

src/FSharp.Plotly/Chart.fs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,21 @@ type Chart =
325325
Chart.BoxPlot(x, y, ?Name=Name,?Showlegend=Showlegend,?Color=Color,?Fillcolor=Fillcolor,?Opacity=Opacity,?Whiskerwidth=Whiskerwidth,?Boxpoints=Boxpoints,?Boxmean=Boxmean,?Jitter=Jitter,?Pointpos=Pointpos,?Orientation=Orientation)
326326

327327

328+
/// Displays the distribution of data based on the five number summary: minimum, first quartile, median, third quartile, and maximum.
329+
static member Violin(?x,?y,?Name,?Showlegend,?Color,?Fillcolor,?Opacity,?Points,?Jitter,?Pointpos,?Orientation) =
330+
Trace.initViolin (TraceStyle.Violin(?X=x, ?Y = y,?Points=Points,
331+
?Jitter=Jitter,?Pointpos=Pointpos,?Orientation=Orientation,?Fillcolor=Fillcolor) )
332+
|> TraceStyle.TraceInfo(?Name=Name,?Showlegend=Showlegend,?Opacity=Opacity)
333+
|> TraceStyle.Marker(?Color=Color)
334+
|> GenericChart.ofTraceObject
335+
336+
337+
/// Displays the distribution of data based on the five number summary: minimum, first quartile, median, third quartile, and maximum.
338+
static member Violin(xy,?Name,?Showlegend,?Color,?Fillcolor,?Opacity,?Points,?Jitter,?Pointpos,?Orientation) =
339+
let x,y = Seq.unzip xy
340+
Chart.Violin(x, y, ?Name=Name,?Showlegend=Showlegend,?Color=Color,?Fillcolor=Fillcolor,?Opacity=Opacity,?Points=Points,?Jitter=Jitter,?Pointpos=Pointpos,?Orientation=Orientation)
341+
342+
328343
/// Shows a graphical representation of a 3-dimensional surface by plotting constant z slices, called contours, on a 2-dimensional format.
329344
/// That is, given a value for z, lines are drawn for connecting the (x,y) coordinates where that z value occurs.
330345
static member Heatmap(data:seq<#seq<#IConvertible>>,?ColNames,?RowNames,?Name,?Showlegend,?Opacity,?Colorscale,?Showscale,?Xgap,?Ygap,?zSmooth,?Colorbar) =
@@ -457,9 +472,16 @@ type Chart =
457472
)
458473
|> TraceStyle.Line(?Width=Width,?Color=Color,?Dash=Dash,?Colorscale=Colorscale)
459474
|> GenericChart.ofTraceObject
460-
461475

462-
476+
477+
/// Computes the choropleth map plot
478+
static member ChoroplethMap(locations,z,?Text,?Locationmode,?Autocolorscale,?Colorscale,?Colorbar,?Marker,?Zmin,?Zmax) =
479+
Trace.initChoroplethMap (
480+
TraceStyle.ChoroplethMap (Locations=locations,Z=z,?Text=Text,?Locationmode=Locationmode,?Autocolorscale=Autocolorscale,
481+
?Colorscale=Colorscale,?Colorbar=Colorbar,?Marker=Marker,?Zmin=Zmin,?Zmax=Zmax)
482+
)
483+
|> GenericChart.ofTraceObject
484+
463485
// ---------------------------------------------------------------------------------------------------------------------------------------------------
464486
// 3d - Chart --->
465487

src/FSharp.Plotly/StyleParams.fs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ module StyleParam =
210210
| False -> box false
211211

212212

213+
type Jitterpoints = Boxpoints
214+
215+
216+
213217
type BoxMean =
214218
| True
215219
| False
@@ -693,6 +697,19 @@ module StyleParam =
693697

694698
static member convert = AxisId.toString >> box
695699

700+
/// Determines the set of locations used to match entries in `locations` to regions on the map. Default: ISO-3
701+
type LocationFormat =
702+
| CountryNames
703+
| ISO_3
704+
| USA_states
705+
706+
static member toString = function
707+
| CountryNames -> "country names"
708+
| ISO_3 -> "ISO-3"
709+
| USA_states -> "USA-states"
710+
711+
static member convert = LocationFormat.toString >> box
712+
696713
// hoverinfo (flaglist string)
697714
//Any combination of "x", "y", "z", "text", "name" joined with a "+" OR "all" or "none" or "skip".
698715
//examples: "x", "y", "x+y", "x+y+z", "all"

src/FSharp.Plotly/Trace.fs

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ module Trace =
2626
let initBoxPlot (applyStyle:Trace->Trace) =
2727
Trace("box") |> applyStyle
2828

29+
/// Init trace for box plot
30+
let initViolin (applyStyle:Trace->Trace) =
31+
Trace("violin") |> applyStyle
32+
2933
/// Init trace for pie chart
3034
let initPie (applyStyle:Trace->Trace) =
3135
Trace("pie") |> applyStyle
@@ -59,6 +63,9 @@ module Trace =
5963
let initParallelCoord (applyStyle:Trace->Trace) =
6064
Trace("parcoords") |> applyStyle
6165

66+
/// Init trace for a choropleth map
67+
let initChoroplethMap (applyStyle:Trace->Trace) =
68+
Trace("choropleth") |> applyStyle
6269

6370
/// Functions provide the styling of the Chart objects
6471
type TraceStyle() =
@@ -424,6 +431,44 @@ module Trace =
424431
)
425432

426433

434+
// Applies the styles of violin plot plot to TraceObjects
435+
static member Violin
436+
(
437+
?Y,
438+
?X,
439+
?X0,
440+
?Y0,
441+
?Points,
442+
?Jitter,
443+
?Pointpos,
444+
?Orientation,
445+
?Fillcolor,
446+
?xAxis,
447+
?yAxis,
448+
?Ysrc,
449+
?Xsrc
450+
451+
) =
452+
(fun (boxPlot:('T :> Trace)) ->
453+
454+
Y |> DynObj.setValueOpt boxPlot "y"
455+
X |> DynObj.setValueOpt boxPlot "x"
456+
X0 |> DynObj.setValueOpt boxPlot "x0"
457+
Y0 |> DynObj.setValueOpt boxPlot "y0"
458+
Points |> DynObj.setValueOptBy boxPlot "points" StyleParam.Jitterpoints.convert
459+
Jitter |> DynObj.setValueOpt boxPlot "jitter"
460+
Pointpos |> DynObj.setValueOpt boxPlot "pointpos"
461+
Orientation |> DynObj.setValueOptBy boxPlot "orientation" StyleParam.Orientation.convert
462+
Fillcolor |> DynObj.setValueOpt boxPlot "fillcolor"
463+
xAxis |> DynObj.setValueOpt boxPlot "xaxis"
464+
yAxis |> DynObj.setValueOpt boxPlot "yaxis"
465+
Ysrc |> DynObj.setValueOpt boxPlot "ysrc"
466+
Xsrc |> DynObj.setValueOpt boxPlot "xsrc"
467+
468+
// out ->
469+
boxPlot
470+
)
471+
427472

428473

429474
// Applies the styles of heatmap to TraceObjects
@@ -836,5 +881,39 @@ module Trace =
836881
)
837882

838883

884+
// Applies the styles of choropleth map plot to TraceObjects
885+
static member ChoroplethMap
886+
(
887+
?Locations : seq<string>,
888+
?Z : seq<#IConvertible>,
889+
?Text : seq<#IConvertible>,
890+
?Locationmode ,
891+
?Autocolorscale : bool,
892+
?Colorscale,
893+
?Colorbar,
894+
?Marker : Marker,
895+
?Zmin,
896+
?Zmax
897+
898+
899+
) =
900+
(fun (choropleth:('T :> Trace)) ->
901+
902+
Locations |> DynObj.setValueOpt choropleth "locations"
903+
Z |> DynObj.setValueOpt choropleth "z"
904+
Text |> DynObj.setValueOpt choropleth "text"
905+
Locationmode |> DynObj.setValueOptBy choropleth "locationmode" StyleParam.LocationFormat.convert
906+
Autocolorscale |> DynObj.setValueOpt choropleth "autocolorscale"
907+
908+
Colorscale |> DynObj.setValueOptBy choropleth "colorscale" StyleParam.Colorscale.convert
909+
Colorbar |> DynObj.setValueOpt choropleth "colorbar"
910+
Marker |> DynObj.setValueOpt choropleth "marker"
911+
Zmin |> DynObj.setValueOpt choropleth "zmin"
912+
Zmax |> DynObj.setValueOpt choropleth "zmax"
913+
914+
// out ->
915+
choropleth
916+
)
917+
839918

840919

0 commit comments

Comments
 (0)