Home
package
Axis
default
new
to_json_value
to_json
Type
RangeSpec
Props
Bar
is_eq
new
to_json_value
to_json
Point
Props
Chart
new
to_json
to_html
Trace
Props
Color
is_eq
to_hash
rgb
rgba
hex
named
to_css
to_json_value
to_json
Coordinate
is_eq
to_hash
from_text
from_number
from_quote
from_numeral
to_json_value
to_json
Font
default
new
to_json_value
to_json
Props
Layout
new
get_title
to_json_value
to_json
Props
Line
default
new
dash_to_str
to_json_value
to_json
Type
Props
Marker
default
new
get_size
get_color
get_symbol
to_json_value
to_json
Symbol
is_eq
to_hash
from_str
to_str
Props
Pie
is_eq
new
to_json_value
to_json
Slice
Props
Sankey
is_eq
new
to_json_value
to_json
Node
Link
Props
Scatter
is_eq
new
to_json_value
to_json
Point
Mode
Props
Title
default
new
get_text
to_json_value
to_json
Props
Axis
Axis
.
default
:
Axis
Axis
.
new
:
Props
->
Try
(
Axis
, [
InvalidAxisBounds
({ min :
F64
, max :
F64
})])
Axis
.
to_json_value
:
Axis
->
InternalJson
Axis
.
to_json
:
Axis
->
Str
Axis
.
Type
: [
Auto
,
Linear
,
Log
,
Date
,
Category
]
Axis
.
RangeSpec
: [
Auto
,
Fixed
,
Reversed
,
Bounds
({ min :
F64
, max :
F64
}),
DateBounds
({ start :
Str
, end :
Str
})]
Axis
.
Props
:= { title :
Title
?? Title.default, type :
Type
?? Auto, range :
RangeSpec
?? Auto, color :
Color
?? Color.rgb({ red: 68, green: 68, blue: 68 }) }
Bar
Bar
.
is_eq
: _
Bar
.
new
:
Props
->
Try
(
Bar
, [
InvalidBarWidth
(
F64
),
Infinity
,
NaN
,
NegativeInfinity
])
Bar
.
to_json_value
:
Bar
->
InternalJson
Bar
.
to_json
:
Bar
->
Str
Bar
.
Point
:= { x :
Coordinate
, y :
Coordinate
, color :
Color
?? Color.rgb({ red: 31, green: 119, blue: 180 }) }
Bar
.
Props
:= { data :
List
(
Point
), orientation : [
Vertical
,
Horizontal
] ?? Vertical, name :
Str
?? "", width :
F64
?? 0.75 }
Chart
Chart
.
new
:
Props
->
Chart
Chart
.
to_json
:
Chart
->
Str
Chart
.
to_html
:
Chart
->
Str
Chart
.
Trace
: [
Bar
(
Bar
),
Scatter
(
Scatter
),
Sankey
(
Sankey
),
Pie
(
Pie
)]
Chart
.
Props
:= { traces :
List
(
Trace
) ?? [], layout :
Layout
?? Layout.new({}), title : [
FromLayout
,
Text
(
Str
)] ?? FromLayout }
Color
Color
.
is_eq
: _
Color
.
to_hash
: _
Color
.
rgb
: { red :
U8
, green :
U8
, blue :
U8
}
->
Color
Color
.
rgba
: { red :
U8
, green :
U8
, blue :
U8
, alpha :
U8
}
->
Color
Color
.
hex
:
Str
->
Try
(
Color
, [
InvalidHex
(
Str
)])
Color
.
named
:
Str
->
Try
(
Color
, [
UnknownColor
(
Str
)])
Color
.
to_css
:
Color
->
Str
Color
.
to_json_value
:
Color
->
InternalJson
Color
.
to_json
:
Color
->
Str
Coordinate
Coordinate
.
is_eq
: _
Coordinate
.
to_hash
: _
Coordinate
.
from_text
:
Str
->
Coordinate
Coordinate
.
from_number
:
F64
->
Try
(
Coordinate
, [
NonFiniteCoordinate
(
F64
)])
Coordinate
.
from_quote
:
Str
->
Try
(
Coordinate
, [
BadQuotedBytes
(
Str
)])
Coordinate
.
from_numeral
:
Numeral
->
Try
(
Coordinate
, [
InvalidNumeral
(
Str
)])
Coordinate
.
to_json_value
:
Coordinate
->
InternalJson
Coordinate
.
to_json
:
Coordinate
->
Str
Font
Font
.
default
:
Font
Font
.
new
:
Props
->
Try
(
Font
, [
InvalidFontSize
(
F64
)])
Font
.
to_json_value
:
Font
->
InternalJson
Font
.
to_json
:
Font
->
Str
Font
.
Props
:= { family :
Str
?? "Arial, sans-serif", size :
F64
?? 12, color :
Color
?? Color.rgb({ red: 0, green: 0, blue: 0 }), shadow : [
NoShadow
,
AutoShadow
] ?? NoShadow, style : [
Normal
,
Italic
] ?? Normal, textcase : [
Normal
,
Upper
,
Lower
] ?? Normal, variant : [
Normal
,
SmallCaps
,
PetiteCaps
,
Unicase
,
AllSmallCaps
,
AllPetiteCaps
] ?? Normal }
Layout
Layout
.
new
:
Props
->
Layout
Layout
.
get_title
:
Layout
->
Str
Layout
.
to_json_value
:
Layout
->
InternalJson
Layout
.
to_json
:
Layout
->
Str
Layout
.
Props
:= { global_font :
Font
?? Font.default, title :
Title
?? Title.default, x_axis :
Axis
?? Axis.default, y_axis :
Axis
?? Axis.default, legend : [
Shown
,
Hidden
] ?? Hidden }
Line
Line
.
default
:
Line
Line
.
new
:
Props
->
Try
(
Line
, [
InvalidLineWidth
(
F64
)])
Line
.
dash_to_str
:
Type
->
Str
Line
.
to_json_value
:
Line
->
InternalJson
Line
.
to_json
:
Line
->
Str
Line
.
Type
: [
Solid
,
Dot
,
Dash
,
LongDash
,
DashDot
,
LongDashDot
]
Line
.
Props
:= { width :
F64
?? 2, color :
Color
?? Color.rgb({ red: 31, green: 119, blue: 180 }), dash :
Type
?? Solid }
Marker
Marker
.
default
:
Marker
Marker
.
new
:
Props
->
Try
(
Marker
, [
InvalidMarkerSize
(
F64
)])
Marker
.
get_size
:
Marker
->
F64
Marker
.
get_color
:
Marker
->
Color
Marker
.
get_symbol
:
Marker
->
Str
Marker
.
to_json_value
:
Marker
->
InternalJson
Marker
.
to_json
:
Marker
->
Str
Marker
.
Symbol
:= [
Circle
,
CircleOpen
,
CircleDot
,
CircleOpenDot
,
Square
,
SquareOpen
,
SquareDot
,
SquareOpenDot
,
Diamond
,
DiamondOpen
,
DiamondDot
,
DiamondOpenDot
,
Cross
,
CrossOpen
,
CrossDot
,
CrossOpenDot
,
X
,
XOpen
,
XDot
,
XOpenDot
,
TriangleUp
,
TriangleUpOpen
,
TriangleUpDot
,
TriangleUpOpenDot
,
TriangleDown
,
TriangleDownOpen
,
TriangleDownDot
,
TriangleDownOpenDot
,
TriangleLeft
,
TriangleLeftOpen
,
TriangleLeftDot
,
TriangleLeftOpenDot
,
TriangleRight
,
TriangleRightOpen
,
TriangleRightDot
,
TriangleRightOpenDot
,
TriangleNe
,
TriangleNeOpen
,
TriangleNeDot
,
TriangleNeOpenDot
,
TriangleSe
,
TriangleSeOpen
,
TriangleSeDot
,
TriangleSeOpenDot
,
TriangleSw
,
TriangleSwOpen
,
TriangleSwDot
,
TriangleSwOpenDot
,
TriangleNw
,
TriangleNwOpen
,
TriangleNwDot
,
TriangleNwOpenDot
,
Pentagon
,
PentagonOpen
,
PentagonDot
,
PentagonOpenDot
,
Hexagon
,
HexagonOpen
,
HexagonDot
,
HexagonOpenDot
,
Hexagon2
,
Hexagon2Open
,
Hexagon2Dot
,
Hexagon2OpenDot
,
Octagon
,
OctagonOpen
,
OctagonDot
,
OctagonOpenDot
,
Star
,
StarOpen
,
StarDot
,
StarOpenDot
,
Hexagram
,
HexagramOpen
,
HexagramDot
,
HexagramOpenDot
,
StarTriangleUp
,
StarTriangleUpOpen
,
StarTriangleUpDot
,
StarTriangleUpOpenDot
,
StarTriangleDown
,
StarTriangleDownOpen
,
StarTriangleDownDot
,
StarTriangleDownOpenDot
,
StarSquare
,
StarSquareOpen
,
StarSquareDot
,
StarSquareOpenDot
,
StarDiamond
,
StarDiamondOpen
,
StarDiamondDot
,
StarDiamondOpenDot
,
DiamondTall
,
DiamondTallOpen
,
DiamondTallDot
,
DiamondTallOpenDot
,
DiamondWide
,
DiamondWideOpen
,
DiamondWideDot
,
DiamondWideOpenDot
,
Hourglass
,
HourglassOpen
,
Bowtie
,
BowtieOpen
,
CircleCross
,
CircleCrossOpen
,
CircleX
,
CircleXOpen
,
SquareCross
,
SquareCrossOpen
,
SquareX
,
SquareXOpen
,
DiamondCross
,
DiamondCrossOpen
,
DiamondX
,
DiamondXOpen
,
CrossThin
,
CrossThinOpen
,
XThin
,
XThinOpen
,
Asterisk
,
AsteriskOpen
,
Hash
,
HashOpen
,
HashDot
,
HashOpenDot
,
YUp
,
YUpOpen
,
YDown
,
YDownOpen
,
YLeft
,
YLeftOpen
,
YRight
,
YRightOpen
,
LineEw
,
LineEwOpen
,
LineNs
,
LineNsOpen
,
LineNe
,
LineNeOpen
,
LineNw
,
LineNwOpen
,
ArrowUp
,
ArrowUpOpen
,
ArrowDown
,
ArrowDownOpen
,
ArrowLeft
,
ArrowLeftOpen
,
ArrowRight
,
ArrowRightOpen
,
ArrowBarUp
,
ArrowBarUpOpen
,
ArrowBarDown
,
ArrowBarDownOpen
,
ArrowBarLeft
,
ArrowBarLeftOpen
,
ArrowBarRight
,
ArrowBarRightOpen
,
Arrow
,
ArrowOpen
,
ArrowWide
,
ArrowWideOpen
]
Marker.Symbol
.
is_eq
: _
Marker.Symbol
.
to_hash
: _
Marker.Symbol
.
from_str
:
Str
->
Try
(
Symbol
, [
InvalidSymbol
(
Str
)])
Marker.Symbol
.
to_str
:
Symbol
->
Str
Marker
.
Props
:= { size :
F64
?? 6, color :
Color
?? Color.rgb({ red: 31, green: 119, blue: 180 }), symbol :
Symbol
?? Circle }
Pie
Pie
.
is_eq
: _
Pie
.
new
:
Props
->
Try
(
Pie
, [
InvalidHole
(
F64
),
InvalidPieValue
(
F64
),
Infinity
,
NaN
,
NegativeInfinity
])
Pie
.
to_json_value
:
Pie
->
InternalJson
Pie
.
to_json
:
Pie
->
Str
Pie
.
Slice
:= { label :
Str
, value :
F64
}
Pie
.
Props
:= { data :
List
(
Slice
), hole :
F64
?? 0, name :
Str
?? "" }
Sankey
Sankey
.
is_eq
: _
Sankey
.
new
:
Props
->
Try
(
Sankey
, [
DuplicateNode
(
Str
),
MissingSource
(
Str
),
MissingTarget
(
Str
),
SelfLink
(
Str
),
InvalidLinkValue
(
F64
),
Infinity
,
NaN
,
NegativeInfinity
])
Sankey
.
to_json_value
:
Sankey
->
InternalJson
Sankey
.
to_json
:
Sankey
->
Str
Sankey
.
Node
:= { id :
Str
, label :
Str
, color :
Color
?? Color.rgb({ red: 31, green: 119, blue: 180 }), hover : [
Default
,
Text
(
Str
)] ?? Default }
Sankey
.
Link
:= { source :
Str
, target :
Str
, value :
F64
, hover : [
Default
,
Text
(
Str
)] ?? Default }
Sankey
.
Props
:= { nodes :
List
(
Node
), links :
List
(
Link
), orientation : [
Vertical
,
Horizontal
] ?? Horizontal, name :
Str
?? "" }
Scatter
Scatter
.
is_eq
: _
Scatter
.
new
:
Props
->
Scatter
Scatter
.
to_json_value
:
Scatter
->
InternalJson
Scatter
.
to_json
:
Scatter
->
Str
Scatter
.
Point
:= { x :
Coordinate
, y :
Coordinate
, marker :
Marker
?? Marker.default, text :
Str
?? "" }
Scatter
.
Mode
: [
Lines
,
Markers
,
Text
,
LinesMarkers
,
LinesText
,
MarkersText
,
LinesMarkersText
,
Hidden
]
Scatter
.
Props
:= { data :
List
(
Point
), name :
Str
?? "", line :
Line
?? Line.default, mode :
Mode
?? Lines }
Title
Title
.
default
:
Title
Title
.
new
:
Props
->
Title
Title
.
get_text
:
Title
->
Try
(
Str
, [
TitleNotSet
])
Title
.
to_json_value
:
Title
->
InternalJson
Title
.
to_json
:
Title
->
Str
Title
.
Props
:= { text :
Str
, font :
Font
?? Font.default }