Skip to content

Commit bc143c6

Browse files
committed
finish funnel chart
1 parent 1a44545 commit bc143c6

File tree

3 files changed

+242
-78
lines changed

3 files changed

+242
-78
lines changed

src/Plotly.NET/ChartAPI/Chart2D.fs

Lines changed: 131 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -909,57 +909,146 @@ module Chart2D =
909909
[<Extension>]
910910
static member Funnel
911911
(
912-
x, y,
913-
[<Optional;DefaultParameterValue(null)>] ?Name ,
914-
[<Optional;DefaultParameterValue(null)>] ?ShowLegend ,
915-
[<Optional;DefaultParameterValue(null)>] ?Opacity ,
916-
[<Optional;DefaultParameterValue(null)>] ?Labels ,
917-
[<Optional;DefaultParameterValue(null)>] ?TextPosition ,
918-
[<Optional;DefaultParameterValue(null)>] ?TextFont ,
919-
[<Optional;DefaultParameterValue(null)>] ?Color ,
920-
[<Optional;DefaultParameterValue(null)>] ?Line ,
921-
[<Optional;DefaultParameterValue(null)>] ?x0 ,
922-
[<Optional;DefaultParameterValue(null)>] ?dX ,
923-
[<Optional;DefaultParameterValue(null)>] ?y0 ,
924-
[<Optional;DefaultParameterValue(null)>] ?dY ,
925-
[<Optional;DefaultParameterValue(null)>] ?Width ,
926-
[<Optional;DefaultParameterValue(null)>] ?Offset ,
927-
[<Optional;DefaultParameterValue(null)>] ?Orientation ,
928-
[<Optional;DefaultParameterValue(null)>] ?Alignmentgroup ,
929-
[<Optional;DefaultParameterValue(null)>] ?Offsetgroup ,
930-
[<Optional;DefaultParameterValue(null)>] ?Cliponaxis ,
931-
[<Optional;DefaultParameterValue(null)>] ?Connector ,
932-
[<Optional;DefaultParameterValue(null)>] ?Insidetextfont ,
933-
[<Optional;DefaultParameterValue(null)>] ?Outsidetextfont,
934-
[<Optional;DefaultParameterValue(true)>] ?UseDefaults : bool
912+
x: seq<#IConvertible>,
913+
y: seq<#IConvertible>,
914+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
915+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
916+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
917+
[<Optional;DefaultParameterValue(null)>] ?Width : float,
918+
[<Optional;DefaultParameterValue(null)>] ?Offset : float,
919+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
920+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
921+
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
922+
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
923+
[<Optional;DefaultParameterValue(null)>] ?Orientation : StyleParam.Orientation,
924+
[<Optional;DefaultParameterValue(null)>] ?AlignmentGroup : string,
925+
[<Optional;DefaultParameterValue(null)>] ?OffsetGroup : string,
926+
[<Optional;DefaultParameterValue(null)>] ?MarkerColor : Color,
927+
[<Optional;DefaultParameterValue(null)>] ?MarkerOutline : Line,
928+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
929+
[<Optional;DefaultParameterValue(null)>] ?TextInfo : StyleParam.TextInfo,
930+
[<Optional;DefaultParameterValue(null)>] ?ConnectorLineColor: Color,
931+
[<Optional;DefaultParameterValue(null)>] ?ConnectorLineStyle: StyleParam.DrawingStyle,
932+
[<Optional;DefaultParameterValue(null)>] ?ConnectorFillColor: Color,
933+
[<Optional;DefaultParameterValue(null)>] ?ConnectorLine : Line,
934+
[<Optional;DefaultParameterValue(null)>] ?Connector : FunnelConnector,
935+
[<Optional;DefaultParameterValue(null)>] ?InsideTextFont : Font,
936+
[<Optional;DefaultParameterValue(null)>] ?OutsideTextFont : Font,
937+
[<Optional;DefaultParameterValue(true)>] ?UseDefaults : bool
935938
) =
936-
939+
937940
let useDefaults = defaultArg UseDefaults true
941+
942+
let marker =
943+
Marker
944+
|> Option.defaultValue (TraceObjects.Marker.init())
945+
|> TraceObjects.Marker.style(
946+
?Color = MarkerColor,
947+
?Outline = MarkerOutline
948+
)
949+
950+
let connectorLine =
951+
ConnectorLine
952+
|> Option.map (
953+
Plotly.NET.Line.style(
954+
?Color = ConnectorLineColor,
955+
?Dash = ConnectorLineStyle
956+
)
957+
)
958+
959+
let connector =
960+
Connector
961+
|> Option.defaultValue (TraceObjects.FunnelConnector.init())
962+
|> TraceObjects.FunnelConnector.style(
963+
?Fillcolor = ConnectorFillColor,
964+
?Line = connectorLine
965+
)
938966

939967
Trace2D.initFunnel(
940968
Trace2DStyle.Funnel(
941-
x = x ,
942-
y = y ,
943-
?x0 = x0 ,
944-
?dX = dX ,
945-
?y0 = y0 ,
946-
?dY = dY ,
947-
?Width = Width ,
948-
?Offset = Offset ,
949-
?Orientation = Orientation ,
950-
?Alignmentgroup = Alignmentgroup ,
951-
?Offsetgroup = Offsetgroup ,
952-
?Cliponaxis = Cliponaxis ,
953-
?Connector = Connector ,
954-
?Insidetextfont = Insidetextfont ,
955-
?Outsidetextfont = Outsidetextfont
969+
?Name = Name ,
970+
?ShowLegend = ShowLegend ,
971+
?Opacity = Opacity ,
972+
X = x ,
973+
Y = y ,
974+
?Width = Width ,
975+
?Offset = Offset ,
976+
?Text = Text ,
977+
?MultiText = MultiText ,
978+
?TextPosition = TextPosition ,
979+
?MultiTextPosition = MultiTextPosition,
980+
?Orientation = Orientation ,
981+
?AlignmentGroup = AlignmentGroup ,
982+
?OffsetGroup = OffsetGroup ,
983+
Marker = marker ,
984+
?TextInfo = TextInfo ,
985+
Connector = connector ,
986+
?InsideTextFont = InsideTextFont ,
987+
?OutsideTextFont = OutsideTextFont
988+
956989
)
957990
)
958-
|> TraceStyle.TraceInfo(?Name=Name,?ShowLegend=ShowLegend,?Opacity=Opacity)
959-
|> TraceStyle.Marker(?Color=Color,?Outline=Line)
960-
|> TraceStyle.TextLabel(?Text=Labels,?Textposition=TextPosition,?Textfont=TextFont)
961991
|> GenericChart.ofTraceObject useDefaults
962992

993+
static member StackedFunnel
994+
(
995+
x: seq<#IConvertible>,
996+
y: seq<#IConvertible>,
997+
[<Optional;DefaultParameterValue(null)>] ?Name : string,
998+
[<Optional;DefaultParameterValue(null)>] ?ShowLegend : bool,
999+
[<Optional;DefaultParameterValue(null)>] ?Opacity : float,
1000+
[<Optional;DefaultParameterValue(null)>] ?Width : float,
1001+
[<Optional;DefaultParameterValue(null)>] ?Offset : float,
1002+
[<Optional;DefaultParameterValue(null)>] ?Text : #IConvertible,
1003+
[<Optional;DefaultParameterValue(null)>] ?MultiText : seq<#IConvertible>,
1004+
[<Optional;DefaultParameterValue(null)>] ?TextPosition : StyleParam.TextPosition,
1005+
[<Optional;DefaultParameterValue(null)>] ?MultiTextPosition : seq<StyleParam.TextPosition>,
1006+
[<Optional;DefaultParameterValue(null)>] ?Orientation : StyleParam.Orientation,
1007+
[<Optional;DefaultParameterValue(null)>] ?AlignmentGroup : string,
1008+
[<Optional;DefaultParameterValue(null)>] ?OffsetGroup : string,
1009+
[<Optional;DefaultParameterValue(null)>] ?MarkerColor : Color,
1010+
[<Optional;DefaultParameterValue(null)>] ?MarkerOutline : Line,
1011+
[<Optional;DefaultParameterValue(null)>] ?Marker : Marker,
1012+
[<Optional;DefaultParameterValue(null)>] ?TextInfo : StyleParam.TextInfo,
1013+
[<Optional;DefaultParameterValue(null)>] ?ConnectorLineColor: Color,
1014+
[<Optional;DefaultParameterValue(null)>] ?ConnectorLineStyle: StyleParam.DrawingStyle,
1015+
[<Optional;DefaultParameterValue(null)>] ?ConnectorFillColor: Color,
1016+
[<Optional;DefaultParameterValue(null)>] ?ConnectorLine : Line,
1017+
[<Optional;DefaultParameterValue(null)>] ?Connector : FunnelConnector,
1018+
[<Optional;DefaultParameterValue(null)>] ?InsideTextFont : Font,
1019+
[<Optional;DefaultParameterValue(null)>] ?OutsideTextFont : Font,
1020+
[<Optional;DefaultParameterValue(true)>] ?UseDefaults : bool
1021+
) =
1022+
Chart.Funnel(
1023+
x,y,
1024+
?Name = Name ,
1025+
?ShowLegend = ShowLegend ,
1026+
?Opacity = Opacity ,
1027+
?Width = Width ,
1028+
?Offset = Offset ,
1029+
?Text = Text ,
1030+
?MultiText = MultiText ,
1031+
?TextPosition = TextPosition ,
1032+
?MultiTextPosition = MultiTextPosition ,
1033+
?Orientation = Orientation ,
1034+
?AlignmentGroup = AlignmentGroup ,
1035+
?OffsetGroup = OffsetGroup ,
1036+
?MarkerColor = MarkerColor ,
1037+
?MarkerOutline = MarkerOutline ,
1038+
?Marker = Marker ,
1039+
?TextInfo = TextInfo ,
1040+
?ConnectorLineColor = ConnectorLineColor,
1041+
?ConnectorLineStyle = ConnectorLineStyle,
1042+
?ConnectorFillColor = ConnectorFillColor,
1043+
?ConnectorLine = ConnectorLine ,
1044+
?Connector = Connector ,
1045+
?InsideTextFont = InsideTextFont ,
1046+
?OutsideTextFont = OutsideTextFont ,
1047+
?UseDefaults = UseDefaults
1048+
1049+
)
1050+
|> GenericChart.mapLayout (Layout.style (FunnelMode = StyleParam.FunnelMode.Stack))
1051+
9631052
/// Creates a waterfall chart. Waterfall charts are special bar charts that help visualizing the cumulative effect of sequentially introduced positive or negative values
9641053
///
9651054
/// Parameters:

0 commit comments

Comments
 (0)