pub trait Geom: Send + Sync {
// Required methods
fn draw(
&self,
data: &DataFrame,
coord: &dyn Coord,
scales: &ScaleSet,
theme: &Theme,
backend: &mut dyn DrawBackend,
) -> Result<(), RenderError>;
fn required_aes(&self) -> Vec<Aesthetic>;
fn default_stat(&self) -> Box<dyn Stat>;
fn default_position(&self) -> Box<dyn Position>;
fn default_params(&self) -> GeomParams;
fn name(&self) -> &str;
// Provided methods
fn set_series_color(&mut self, _color: (u8, u8, u8)) { ... }
fn include_zero_baseline(&self) -> bool { ... }
fn allows_infinite(&self) -> bool { ... }
fn setup_data(&self, _data: &mut DataFrame) { ... }
}Expand description
Trait for geometric objects that draw data on the plot.
Required Methods§
Sourcefn draw(
&self,
data: &DataFrame,
coord: &dyn Coord,
scales: &ScaleSet,
theme: &Theme,
backend: &mut dyn DrawBackend,
) -> Result<(), RenderError>
fn draw( &self, data: &DataFrame, coord: &dyn Coord, scales: &ScaleSet, theme: &Theme, backend: &mut dyn DrawBackend, ) -> Result<(), RenderError>
Draw this geometry.
Sourcefn required_aes(&self) -> Vec<Aesthetic>
fn required_aes(&self) -> Vec<Aesthetic>
Required aesthetics.
Sourcefn default_stat(&self) -> Box<dyn Stat>
fn default_stat(&self) -> Box<dyn Stat>
Default stat for this geom.
Sourcefn default_position(&self) -> Box<dyn Position>
fn default_position(&self) -> Box<dyn Position>
Default position adjustment.
Sourcefn default_params(&self) -> GeomParams
fn default_params(&self) -> GeomParams
Non-mapped visual defaults.
Provided Methods§
Sourcefn set_series_color(&mut self, _color: (u8, u8, u8))
fn set_series_color(&mut self, _color: (u8, u8, u8))
Apply a brand/primary color to this geom’s single-series default (its
color or fill). The build pipeline calls this only when the layer has
no color/fill aesthetic mapped, so an explicit mapping always wins. The
default is a no-op; series geoms override it.
Sourcefn include_zero_baseline(&self) -> bool
fn include_zero_baseline(&self) -> bool
Whether this geom draws from a 0 baseline, so the Y scale should include
0 even when y is explicitly mapped (bars/columns/area/histograms — as
in ggplot2). Default false.
Sourcefn allows_infinite(&self) -> bool
fn allows_infinite(&self) -> bool
Whether -Inf/Inf position values are meaningful for this geom
(ggplot2: “extend to the panel edge”). Rows with infinite positions are
otherwise dropped with a warning before stats run. NaN is always
dropped. Default false; geom_rect returns true.
Sourcefn setup_data(&self, _data: &mut DataFrame)
fn setup_data(&self, _data: &mut DataFrame)
Geom-specific data preparation after the stat and position steps but
before scale training (ggplot2’s GeomX$setup_data) — e.g. a tile adds
its xmin/xmax/ymin/ymax extents so continuous scales train on
them. Default: no-op.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".