Skip to content

Commit f998402

Browse files
committed
Add all violin trace params, improve Chart function
1 parent b54c023 commit f998402

6 files changed

Lines changed: 319 additions & 163 deletions

File tree

src/Plotly.NET/ChartAPI/Chart2D.fs

Lines changed: 155 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1537,8 +1537,9 @@ module Chart2D =
15371537

15381538
/// Displays the distribution of data based on the five number summary: minimum, first quartile, median, third quartile, and maximum.
15391539
[<Extension>]
1540-
static member BoxPlot(
1541-
xy: seq<#IConvertible * #IConvertible>,
1540+
static member BoxPlot
1541+
(
1542+
xy: seq<#IConvertible * #IConvertible>,
15421543
[<Optional;DefaultParameterValue(null)>] ?Name : string,
15431544
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
15441545
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
@@ -1561,111 +1562,177 @@ module Chart2D =
15611562
[<Optional;DefaultParameterValue(null)>] ?Notched : bool,
15621563
[<Optional;DefaultParameterValue(null)>] ?NotchWidth : float,
15631564
[<Optional;DefaultParameterValue(null)>] ?QuartileMethod: StyleParam.QuartileMethod
1564-
) =
1565-
let x,y = Seq.unzip xy
1566-
Chart.BoxPlot(
1567-
x, y,
1568-
?Name = Name ,
1569-
?ShowLegend = ShowLegend ,
1570-
?Text = Text ,
1571-
?MultiText = MultiText ,
1572-
?Fillcolor = Fillcolor ,
1573-
?MarkerColor = MarkerColor ,
1574-
?OutlierColor = OutlierColor ,
1575-
?OutlierWidth = OutlierWidth ,
1576-
?Opacity = Opacity ,
1577-
?WhiskerWidth = WhiskerWidth ,
1578-
?BoxPoints = BoxPoints ,
1579-
?BoxMean = BoxMean ,
1580-
?Jitter = Jitter ,
1581-
?PointPos = PointPos ,
1582-
?Orientation = Orientation ,
1583-
?Marker = Marker ,
1584-
?Line = Line ,
1585-
?AlignmentGroup = AlignmentGroup,
1586-
?Offsetgroup = Offsetgroup ,
1587-
?Notched = Notched ,
1588-
?NotchWidth = NotchWidth ,
1589-
?QuartileMethod = QuartileMethod
1590-
)
1565+
1566+
) =
1567+
let x,y = Seq.unzip xy
1568+
Chart.BoxPlot(
1569+
x, y,
1570+
?Name = Name ,
1571+
?ShowLegend = ShowLegend ,
1572+
?Text = Text ,
1573+
?MultiText = MultiText ,
1574+
?Fillcolor = Fillcolor ,
1575+
?MarkerColor = MarkerColor ,
1576+
?OutlierColor = OutlierColor ,
1577+
?OutlierWidth = OutlierWidth ,
1578+
?Opacity = Opacity ,
1579+
?WhiskerWidth = WhiskerWidth ,
1580+
?BoxPoints = BoxPoints ,
1581+
?BoxMean = BoxMean ,
1582+
?Jitter = Jitter ,
1583+
?PointPos = PointPos ,
1584+
?Orientation = Orientation ,
1585+
?Marker = Marker ,
1586+
?Line = Line ,
1587+
?AlignmentGroup = AlignmentGroup,
1588+
?Offsetgroup = Offsetgroup ,
1589+
?Notched = Notched ,
1590+
?NotchWidth = NotchWidth ,
1591+
?QuartileMethod = QuartileMethod
1592+
)
15911593

15921594

15931595

15941596
/// Displays the distribution of data based on the five number summary: minimum, first quartile, median, third quartile, and maximum.
15951597
[<Extension>]
15961598
static member Violin
15971599
(
1598-
[<Optional;DefaultParameterValue(null)>] ?x,
1599-
[<Optional;DefaultParameterValue(null)>] ?y,
1600-
[<Optional;DefaultParameterValue(null)>] ?Name,
1601-
[<Optional;DefaultParameterValue(null)>] ?ShowLegend,
1602-
[<Optional;DefaultParameterValue(null)>] ?Color,
1603-
[<Optional;DefaultParameterValue(null)>] ?Fillcolor,
1604-
[<Optional;DefaultParameterValue(null)>] ?Opacity,
1605-
[<Optional;DefaultParameterValue(null)>] ?Points,
1606-
[<Optional;DefaultParameterValue(null)>] ?Jitter,
1607-
[<Optional;DefaultParameterValue(null)>] ?Pointpos,
1608-
[<Optional;DefaultParameterValue(null)>] ?Orientation,
1609-
[<Optional;DefaultParameterValue(null)>] ?Width,
1610-
[<Optional;DefaultParameterValue(null)>] ?Marker,
1611-
[<Optional;DefaultParameterValue(null)>] ?Line,
1612-
[<Optional;DefaultParameterValue(null)>] ?Alignmentgroup,
1613-
[<Optional;DefaultParameterValue(null)>] ?Offsetgroup,
1614-
[<Optional;DefaultParameterValue(null)>] ?Box,
1615-
[<Optional;DefaultParameterValue(null)>] ?Bandwidth,
1616-
[<Optional;DefaultParameterValue(null)>] ?Meanline,
1617-
[<Optional;DefaultParameterValue(null)>] ?Scalegroup,
1618-
[<Optional;DefaultParameterValue(null)>] ?Scalemode,
1619-
[<Optional;DefaultParameterValue(null)>] ?Side,
1620-
[<Optional;DefaultParameterValue(null)>] ?Span,
1621-
[<Optional;DefaultParameterValue(null)>] ?SpanMode,
1622-
[<Optional;DefaultParameterValue(null)>] ?Uirevision
1600+
[<Optional;DefaultParameterValue(null)>] ?X : seq<#IConvertible>,
1601+
[<Optional;DefaultParameterValue(null)>] ?Y : seq<#IConvertible>,
1602+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
1603+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
1604+
[<Optional;DefaultParameterValue(null)>] ?FillColor : Color,
1605+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
1606+
[<Optional;DefaultParameterValue(null)>] ?Points : StyleParam.BoxPoints,
1607+
[<Optional;DefaultParameterValue(null)>] ?Jitter : float,
1608+
[<Optional;DefaultParameterValue(null)>] ?PointPos : float,
1609+
[<Optional;DefaultParameterValue(null)>] ?Orientation : StyleParam.Orientation,
1610+
[<Optional;DefaultParameterValue(null)>] ?Width : float,
1611+
[<Optional;DefaultParameterValue(null)>] ?MarkerColor : Color,
1612+
[<Optional;DefaultParameterValue(null)>] ?OutlierColor : Color,
1613+
[<Optional;DefaultParameterValue(null)>] ?OutlierWidth : int,
1614+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
1615+
[<Optional;DefaultParameterValue(null)>] ?Line : Line,
1616+
[<Optional;DefaultParameterValue(null)>] ?AlignmentGroup: string,
1617+
[<Optional;DefaultParameterValue(null)>] ?OffsetGroup : string,
1618+
[<Optional;DefaultParameterValue(null)>] ?ShowBox : bool,
1619+
[<Optional;DefaultParameterValue(null)>] ?BoxWidth : float,
1620+
[<Optional;DefaultParameterValue(null)>] ?BoxFillColor : Color,
1621+
[<Optional;DefaultParameterValue(null)>] ?Box : Box,
1622+
[<Optional;DefaultParameterValue(null)>] ?BandWidth : float,
1623+
[<Optional;DefaultParameterValue(null)>] ?MeanLine : MeanLine,
1624+
[<Optional;DefaultParameterValue(null)>] ?ScaleGroup : string,
1625+
[<Optional;DefaultParameterValue(null)>] ?ScaleMode : StyleParam.ScaleMode,
1626+
[<Optional;DefaultParameterValue(null)>] ?Side : StyleParam.ViolinSide,
1627+
[<Optional;DefaultParameterValue(null)>] ?Span : StyleParam.Range,
1628+
[<Optional;DefaultParameterValue(null)>] ?SpanMode : StyleParam.SpanMode
16231629
) =
1630+
1631+
let box =
1632+
Box
1633+
|> Option.defaultValue (TraceObjects.Box.init())
1634+
|> TraceObjects.Box.style (
1635+
?Visible = ShowBox ,
1636+
?Width = BoxWidth ,
1637+
?FillColor = BoxFillColor
1638+
)
1639+
16241640
Trace2D.initViolin (
16251641
Trace2DStyle.Violin(
1626-
?X=x, ?Y = y,?Points=Points,
1627-
?Jitter=Jitter,?Pointpos=Pointpos,?Orientation=Orientation,?Fillcolor=Fillcolor,
1628-
?Width=Width,?Marker=Marker,?Line=Line,?Alignmentgroup=Alignmentgroup,?Offsetgroup=Offsetgroup,?Box=Box,?Bandwidth=Bandwidth,?Meanline=Meanline,
1629-
?Scalegroup=Scalegroup,?Scalemode=Scalemode,?Side=Side,?Span=Span,?SpanMode=SpanMode,?Uirevision=Uirevision
1642+
?X = X ,
1643+
?Y = Y ,
1644+
?Name = Name ,
1645+
?ShowLegend = ShowLegend ,
1646+
?FillColor = FillColor ,
1647+
?Opacity = Opacity ,
1648+
?Points = Points ,
1649+
?Jitter = Jitter ,
1650+
?PointPos = PointPos ,
1651+
?Orientation = Orientation ,
1652+
?Width = Width ,
1653+
?Marker = Marker ,
1654+
?Line = Line ,
1655+
?AlignmentGroup = AlignmentGroup,
1656+
?OffsetGroup = OffsetGroup ,
1657+
Box = box ,
1658+
?BandWidth = BandWidth ,
1659+
?MeanLine = MeanLine ,
1660+
?ScaleGroup = ScaleGroup ,
1661+
?ScaleMode = ScaleMode ,
1662+
?Side = Side ,
1663+
?Span = Span ,
1664+
?SpanMode = SpanMode
16301665
)
16311666
)
1632-
|> TraceStyle.TraceInfo(?Name=Name,?ShowLegend=ShowLegend,?Opacity=Opacity)
1633-
|> TraceStyle.Marker(?Color=Color)
1667+
|> TraceStyle.TraceInfo(?Name=Name, ?ShowLegend=ShowLegend, ?Opacity=Opacity)
1668+
|> TraceStyle.Marker(?Color=MarkerColor, ?OutlierColor= OutlierColor, ?OutlierWidth= OutlierWidth)
16341669
|> GenericChart.ofTraceObject
16351670

16361671

16371672
/// Displays the distribution of data based on the five number summary: minimum, first quartile, median, third quartile, and maximum.
16381673
[<Extension>]
1639-
static member Violin(xy,
1640-
[<Optional;DefaultParameterValue(null)>] ?Name,
1641-
[<Optional;DefaultParameterValue(null)>] ?ShowLegend,
1642-
[<Optional;DefaultParameterValue(null)>] ?Color,
1643-
[<Optional;DefaultParameterValue(null)>] ?Fillcolor,
1644-
[<Optional;DefaultParameterValue(null)>] ?Opacity,
1645-
[<Optional;DefaultParameterValue(null)>] ?Points,
1646-
[<Optional;DefaultParameterValue(null)>] ?Jitter,
1647-
[<Optional;DefaultParameterValue(null)>] ?Pointpos,
1648-
[<Optional;DefaultParameterValue(null)>] ?Orientation,
1649-
[<Optional;DefaultParameterValue(null)>] ?Width,
1650-
[<Optional;DefaultParameterValue(null)>] ?Marker,
1651-
[<Optional;DefaultParameterValue(null)>] ?Line,
1652-
[<Optional;DefaultParameterValue(null)>] ?Alignmentgroup,
1653-
[<Optional;DefaultParameterValue(null)>] ?Offsetgroup,
1654-
[<Optional;DefaultParameterValue(null)>] ?Box,
1655-
[<Optional;DefaultParameterValue(null)>] ?Bandwidth,
1656-
[<Optional;DefaultParameterValue(null)>] ?Meanline,
1657-
[<Optional;DefaultParameterValue(null)>] ?Scalegroup,
1658-
[<Optional;DefaultParameterValue(null)>] ?Scalemode,
1659-
[<Optional;DefaultParameterValue(null)>] ?Side,
1660-
[<Optional;DefaultParameterValue(null)>] ?Span,
1661-
[<Optional;DefaultParameterValue(null)>] ?SpanMode,
1662-
[<Optional;DefaultParameterValue(null)>] ?Uirevision
1674+
static member Violin
1675+
(
1676+
xy: seq<#IConvertible * #IConvertible>,
1677+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
1678+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
1679+
[<Optional;DefaultParameterValue(null)>] ?FillColor : Color,
1680+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
1681+
[<Optional;DefaultParameterValue(null)>] ?Points : StyleParam.BoxPoints,
1682+
[<Optional;DefaultParameterValue(null)>] ?Jitter : float,
1683+
[<Optional;DefaultParameterValue(null)>] ?PointPos : float,
1684+
[<Optional;DefaultParameterValue(null)>] ?Orientation : StyleParam.Orientation,
1685+
[<Optional;DefaultParameterValue(null)>] ?Width : float,
1686+
[<Optional;DefaultParameterValue(null)>] ?MarkerColor : Color,
1687+
[<Optional;DefaultParameterValue(null)>] ?OutlierColor : Color,
1688+
[<Optional;DefaultParameterValue(null)>] ?OutlierWidth : int,
1689+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
1690+
[<Optional;DefaultParameterValue(null)>] ?Line : Line,
1691+
[<Optional;DefaultParameterValue(null)>] ?AlignmentGroup: string,
1692+
[<Optional;DefaultParameterValue(null)>] ?OffsetGroup : string,
1693+
[<Optional;DefaultParameterValue(null)>] ?ShowBox : bool,
1694+
[<Optional;DefaultParameterValue(null)>] ?BoxWidth : float,
1695+
[<Optional;DefaultParameterValue(null)>] ?BoxFillColor : Color,
1696+
[<Optional;DefaultParameterValue(null)>] ?Box : Box,
1697+
[<Optional;DefaultParameterValue(null)>] ?BandWidth : float,
1698+
[<Optional;DefaultParameterValue(null)>] ?MeanLine : MeanLine,
1699+
[<Optional;DefaultParameterValue(null)>] ?ScaleGroup : string,
1700+
[<Optional;DefaultParameterValue(null)>] ?ScaleMode : StyleParam.ScaleMode,
1701+
[<Optional;DefaultParameterValue(null)>] ?Side : StyleParam.ViolinSide,
1702+
[<Optional;DefaultParameterValue(null)>] ?Span : StyleParam.Range,
1703+
[<Optional;DefaultParameterValue(null)>] ?SpanMode : StyleParam.SpanMode
16631704
) =
16641705
let x,y = Seq.unzip xy
1665-
Chart.Violin(x, y, ?Name=Name,?ShowLegend=ShowLegend,?Color=Color,?Fillcolor=Fillcolor,?Opacity=Opacity,?Points=Points,?Jitter=Jitter,?Pointpos=Pointpos,?Orientation=Orientation,
1666-
?Width=Width,?Marker=Marker,?Line=Line,?Alignmentgroup=Alignmentgroup,?Offsetgroup=Offsetgroup,?Box=Box,?Bandwidth=Bandwidth,?Meanline=Meanline,
1667-
?Scalegroup=Scalegroup,?Scalemode=Scalemode,?Side=Side,?Span=Span,?SpanMode=SpanMode,?Uirevision=Uirevision
1668-
)
1706+
Chart.Violin(
1707+
x, y,
1708+
?Name = Name ,
1709+
?ShowLegend = ShowLegend ,
1710+
?FillColor = FillColor ,
1711+
?Opacity = Opacity ,
1712+
?Points = Points ,
1713+
?Jitter = Jitter ,
1714+
?PointPos = PointPos ,
1715+
?Orientation = Orientation ,
1716+
?Width = Width ,
1717+
?MarkerColor = MarkerColor ,
1718+
?OutlierColor = OutlierColor ,
1719+
?OutlierWidth = OutlierWidth ,
1720+
?Marker = Marker ,
1721+
?Line = Line ,
1722+
?AlignmentGroup= AlignmentGroup,
1723+
?OffsetGroup = OffsetGroup ,
1724+
?ShowBox = ShowBox ,
1725+
?BoxWidth = BoxWidth ,
1726+
?BoxFillColor = BoxFillColor ,
1727+
?Box = Box ,
1728+
?BandWidth = BandWidth ,
1729+
?MeanLine = MeanLine ,
1730+
?ScaleGroup = ScaleGroup ,
1731+
?ScaleMode = ScaleMode ,
1732+
?Side = Side ,
1733+
?Span = Span ,
1734+
?SpanMode = SpanMode
1735+
)
16691736

16701737

16711738
/// Computes the bi-dimensional histogram of two data samples and auto-determines the bin size.

src/Plotly.NET/CommonAbstractions/StyleParams.fs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1850,6 +1850,33 @@ module StyleParam =
18501850
// #S#
18511851
//--------------------------
18521852

1853+
[<RequireQualifiedAccess>]
1854+
type SpanMode =
1855+
| Soft | Hard | Manual
1856+
1857+
static member toString = function
1858+
| Soft -> "soft"
1859+
| Hard -> "hard"
1860+
| Manual-> "manual"
1861+
1862+
1863+
static member convert = SpanMode.toString >> box
1864+
override this.ToString() = this |> SpanMode.toString
1865+
member this.Convert() = this |> SpanMode.convert
1866+
1867+
[<RequireQualifiedAccess>]
1868+
type ScaleMode =
1869+
| Width | Count
1870+
1871+
static member toString = function
1872+
| Width -> "width"
1873+
| Count -> "count"
1874+
1875+
1876+
static member convert = ScaleMode.toString >> box
1877+
override this.ToString() = this |> ScaleMode.toString
1878+
member this.Convert() = this |> ScaleMode.convert
1879+
18531880
[<RequireQualifiedAccess>]
18541881
type StackGaps =
18551882
| InferZero | Interpolate
@@ -2608,6 +2635,19 @@ module StyleParam =
26082635
// #V#
26092636
//--------------------------
26102637

2638+
[<RequireQualifiedAccess>]
2639+
type ViolinSide =
2640+
| Both | Positive | Negative
2641+
2642+
static member toString = function
2643+
| Both -> "both"
2644+
| Positive -> "positive"
2645+
| Negative -> "negative"
2646+
2647+
static member convert = ViolinSide.toString >> box
2648+
override this.ToString() = this |> ViolinSide.toString
2649+
member this.Convert() = this |> ViolinSide.convert
2650+
26112651
[<RequireQualifiedAccess>]
26122652
type ViolinMode =
26132653
| Group | Overlay

src/Plotly.NET/Plotly.NET.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
<Compile Include="Traces\ObjectAbstractions\WaterfallConnector.fs" />
9696
<Compile Include="Traces\ObjectAbstractions\FunnelConnector.fs" />
9797
<Compile Include="Traces\ObjectAbstractions\Box.fs" />
98-
<Compile Include="Traces\ObjectAbstractions\Meanline.fs" />
98+
<Compile Include="Traces\ObjectAbstractions\MeanLine.fs" />
9999
<Compile Include="Traces\ObjectAbstractions\Bins.fs" />
100100
<Compile Include="Traces\ObjectAbstractions\Cumulative.fs" />
101101
<Compile Include="Traces\ObjectAbstractions\Error.fs" />

0 commit comments

Comments
 (0)