pub struct Shape { /* private fields */ }
Implementations§
Source§impl Shape
impl Shape
pub fn new() -> Shape
Sourcepub fn shape_type(self, shape_type: ShapeType) -> Shape
pub fn shape_type(self, shape_type: ShapeType) -> Shape
Specifies the shape type to be drawn. If “line”, a line is drawn from (x0
,y0
) to
(x1
,y1
) with respect to the axes’ sizing mode. If “circle”, a circle is drawn from
((x0
+x1
)/2, (y0
+y1
)/2)) with radius (|(x0
+x1
)/2 - x0
|, |(y0
+y1
)/2 -y0
)|)
with respect to the axes’ sizing mode. If “rect”, a rectangle is drawn linking
(x0
,y0
), (x1
,y0
), (x1
,y1
), (x0
,y1
), (x0
,y0
) with respect to the axes’
sizing mode. If “path”, draw a custom SVG path using path
. with respect to the axes’
sizing mode.
Sourcepub fn layer(self, layer: ShapeLayer) -> Shape
pub fn layer(self, layer: ShapeLayer) -> Shape
Specifies whether shapes are drawn below or above traces.
Sourcepub fn x_ref(self, x_ref: &str) -> Shape
pub fn x_ref(self, x_ref: &str) -> Shape
Sets the shape’s x coordinate axis. If set to an x axis id (e.g. “x” or “x2”), the x
position refers to an x coordinate. If set to “paper”, the x
position refers to the
distance from the left side of the plotting area in normalized coordinates where “0” (“1”)
corresponds to the left (right) side. If the axis type
is “log”, then you must take the
log of your desired range. If the axis type
is “date”, then you must convert the date to
unix time in milliseconds.
Sourcepub fn x_size_mode(self, x_size_mode: ShapeSizeMode) -> Shape
pub fn x_size_mode(self, x_size_mode: ShapeSizeMode) -> Shape
Sets the shapes’s sizing mode along the x axis. If set to “scaled”, x0
, x1
and x
coordinates within path
refer to data values on the x axis or a fraction of the plot
area’s width (xref
set to “paper”). If set to “pixel”, xanchor
specifies the x position
in terms of data or plot fraction but x0
, x1
and x coordinates within path
are pixels
relative to xanchor
. This way, the shape can have a fixed width while maintaining a
position relative to data or plot fraction.
Sourcepub fn x_anchor<C: NumOrString>(self, x_anchor: C) -> Shape
pub fn x_anchor<C: NumOrString>(self, x_anchor: C) -> Shape
Only relevant in conjunction with xsizemode
set to “pixel”. Specifies the anchor point on
the x axis to which x0
, x1
and x coordinates within path
are relative to. E.g. useful
to attach a pixel sized shape to a certain data value. No effect when xsizemode
not set
to “pixel”.
Sourcepub fn x0<C: NumOrString>(self, x0: C) -> Shape
pub fn x0<C: NumOrString>(self, x0: C) -> Shape
Sets the shape’s starting x position. See type
and xsizemode
for more info.
Sourcepub fn x1<C: NumOrString>(self, x1: C) -> Shape
pub fn x1<C: NumOrString>(self, x1: C) -> Shape
Sets the shape’s end x position. See type
and xsizemode
for more info.
Sourcepub fn y_ref(self, y_ref: &str) -> Shape
pub fn y_ref(self, y_ref: &str) -> Shape
Sets the annotation’s y coordinate axis. If set to an y axis id (e.g. “y” or “y2”),
the y
position refers to an y coordinate If set to “paper”, the y
position refers to
the distance from the bottom of the plotting area in normalized coordinates where “0” (“1”)
corresponds to the bottom (top).
Sourcepub fn y_size_mode(self, y_size_mode: ShapeSizeMode) -> Shape
pub fn y_size_mode(self, y_size_mode: ShapeSizeMode) -> Shape
Sets the shapes’s sizing mode along the y axis. If set to “scaled”, y0
, y1
and y
coordinates within path
refer to data values on the y axis or a fraction of the plot
area’s height (yref
set to “paper”). If set to “pixel”, yanchor
specifies the y position
in terms of data or plot fraction but y0
, y1
and y coordinates within path
are pixels
relative to yanchor
. This way, the shape can have a fixed height while maintaining a
position relative to data or plot fraction.
Sourcepub fn y_anchor<C: NumOrString>(self, y_anchor: C) -> Shape
pub fn y_anchor<C: NumOrString>(self, y_anchor: C) -> Shape
Only relevant in conjunction with ysizemode
set to “pixel”. Specifies the anchor point on
the y axis to which y0
, y1
and y coordinates within path
are relative to. E.g. useful
to attach a pixel sized shape to a certain data value. No effect when ysizemode
not set
to “pixel”.
Sourcepub fn y0<C: NumOrString>(self, y0: C) -> Shape
pub fn y0<C: NumOrString>(self, y0: C) -> Shape
Sets the shape’s starting y position. See type
and ysizemode
for more info.
Sourcepub fn y1<C: NumOrString>(self, y1: C) -> Shape
pub fn y1<C: NumOrString>(self, y1: C) -> Shape
Sets the shape’s end y position. See type
and ysizemode
for more info.
Sourcepub fn path(self, path: &str) -> Shape
pub fn path(self, path: &str) -> Shape
For type
“path” - a valid SVG path with the pixel values replaced by data values in
xsizemode
/ysizemode
being “scaled” and taken unmodified as pixels relative to
xanchor
and yanchor
in case of “pixel” size mode. There are a few restrictions / quirks
only absolute instructions, not relative. So the allowed segments
are: M, L, H, V, Q, C, T, S, and Z arcs (A) are not allowed because radius rx and ry are
relative. In the future we could consider supporting relative commands, but we would have
to decide on how to handle date and log axes. Note that even as is, Q and C Bezier paths
that are smooth on linear axes may not be smooth on log, and vice versa. no chained
“polybezier” commands - specify the segment type for each one. On category axes, values are
numbers scaled to the serial numbers of categories because using the categories themselves
there would be no way to describe fractional positions On data axes: because space and T are
both normal components of path strings, we can’t use either to separate date from time parts.
Therefore we’ll use underscore for this purpose: 2015-02-21_13:45:56.789
Sourcepub fn opacity(self, opacity: f64) -> Shape
pub fn opacity(self, opacity: f64) -> Shape
Sets the opacity of the shape. Number between or equal to 0 and 1.
Sourcepub fn line(self, line: ShapeLine) -> Shape
pub fn line(self, line: ShapeLine) -> Shape
Sets the shape line properties (color
, width
, dash
).
Sourcepub fn fill_color<C: Color>(self, fill_color: C) -> Shape
pub fn fill_color<C: Color>(self, fill_color: C) -> Shape
Sets the color filling the shape’s interior. Only applies to closed shapes.
Sourcepub fn fill_rule(self, fill_rule: FillRule) -> Shape
pub fn fill_rule(self, fill_rule: FillRule) -> Shape
Determines which regions of complex paths constitute the interior. For more info please visit https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule
Sourcepub fn editable(self, editable: bool) -> Shape
pub fn editable(self, editable: bool) -> Shape
Determines whether the shape could be activated for edit or not. Has no effect when the
older editable shapes mode is enabled via config.editable
or config.edits.shapePosition
.
Sourcepub fn name(self, name: &str) -> Shape
pub fn name(self, name: &str) -> Shape
When used in a template, named items are created in the output figure in addition to any
items the figure already has in this array. You can modify these items in the output figure
by making your own item with templateitemname
matching this name
alongside your
modifications (including visible: false
or enabled: false
to hide it). Has no effect
outside of a template.
Sourcepub fn template_item_name(self, template_item_name: &str) -> Shape
pub fn template_item_name(self, template_item_name: &str) -> Shape
Used to refer to a named item in this array in the template. Named items from the template
will be created even without a matching item in the input figure, but you can modify one
by making an item with templateitemname
matching its name
, alongside your modifications
(including visible: false
or enabled: false
to hide it). If there is no template or no
matching item, this item will be hidden unless you explicitly show it with visible: true
.