Skip to main content

Geom

Trait Geom 

Source
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§

Source

fn draw( &self, data: &DataFrame, coord: &dyn Coord, scales: &ScaleSet, theme: &Theme, backend: &mut dyn DrawBackend, ) -> Result<(), RenderError>

Draw this geometry.

Source

fn required_aes(&self) -> Vec<Aesthetic>

Required aesthetics.

Source

fn default_stat(&self) -> Box<dyn Stat>

Default stat for this geom.

Source

fn default_position(&self) -> Box<dyn Position>

Default position adjustment.

Source

fn default_params(&self) -> GeomParams

Non-mapped visual defaults.

Source

fn name(&self) -> &str

Name for debug/display.

Provided Methods§

Source

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.

Source

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.

Source

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.

Source

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".

Implementors§