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.