pub struct Shape { /* private fields */ }
Implementations§
Source§impl Shape
impl Shape
Sourcepub fn layer(self, value: ShapeLayer) -> Self
pub fn layer(self, value: ShapeLayer) -> Self
Specifies whether shapes are drawn below or above traces.
Sourcepub fn x_ref(self, value: impl AsRef<str>) -> Self
pub fn x_ref(self, value: impl AsRef<str>) -> Self
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, value: ShapeSizeMode) -> Self
pub fn x_size_mode(self, value: ShapeSizeMode) -> Self
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(self, value: impl Into<NumOrString>) -> Self
pub fn x_anchor(self, value: impl Into<NumOrString>) -> Self
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(self, value: impl Into<NumOrString>) -> Self
pub fn x0(self, value: impl Into<NumOrString>) -> Self
Sets the shape’s starting x position. See type
and xsizemode
for
more info.
Sourcepub fn x1(self, value: impl Into<NumOrString>) -> Self
pub fn x1(self, value: impl Into<NumOrString>) -> Self
Sets the shape’s end x position. See type
and xsizemode
for more
info.
Sourcepub fn y_ref(self, value: impl AsRef<str>) -> Self
pub fn y_ref(self, value: impl AsRef<str>) -> Self
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, value: ShapeSizeMode) -> Self
pub fn y_size_mode(self, value: ShapeSizeMode) -> Self
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(self, value: impl Into<NumOrString>) -> Self
pub fn y_anchor(self, value: impl Into<NumOrString>) -> Self
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(self, value: impl Into<NumOrString>) -> Self
pub fn y0(self, value: impl Into<NumOrString>) -> Self
Sets the shape’s starting y position. See type
and ysizemode
for
more info.
Sourcepub fn y1(self, value: impl Into<NumOrString>) -> Self
pub fn y1(self, value: impl Into<NumOrString>) -> Self
Sets the shape’s end y position. See type
and ysizemode
for more
info.
Sourcepub fn path(self, value: impl AsRef<str>) -> Self
pub fn path(self, value: impl AsRef<str>) -> Self
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, value: f64) -> Self
pub fn opacity(self, value: f64) -> Self
Sets the opacity of the shape. Number between or equal to 0 and 1.
Sourcepub fn line(self, value: ShapeLine) -> Self
pub fn line(self, value: ShapeLine) -> Self
Sets the shape line properties (color
, width
, dash
).
Sourcepub fn fill_color(self, value: impl Color) -> Self
pub fn fill_color(self, value: impl Color) -> Self
Sets the color filling the shape’s interior. Only applies to closed shapes.
Sourcepub fn fill_rule(self, value: FillRule) -> Self
pub fn fill_rule(self, value: FillRule) -> Self
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, value: bool) -> Self
pub fn editable(self, value: bool) -> Self
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, value: impl AsRef<str>) -> Self
pub fn name(self, value: impl AsRef<str>) -> Self
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, value: impl AsRef<str>) -> Self
pub fn template_item_name(self, value: impl AsRef<str>) -> Self
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
.
Source§impl Shape
impl Shape
pub fn new() -> Self
Sourcepub fn shape_type(self, shape_type: ShapeType) -> Self
pub fn shape_type(self, shape_type: ShapeType) -> Self
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.