Skip to main content

GeomPoint

Struct GeomPoint 

Source
pub struct GeomPoint {
    pub size: f64,
    pub color: (u8, u8, u8),
    pub alpha: f64,
    pub visibility: PointVisibility,
    pub hidden_targets: bool,
}
Expand description

Scatter plot points.

Fields§

§size: f64§color: (u8, u8, u8)§alpha: f64§visibility: PointVisibility

Whether the marks are inked; see PointVisibility.

§hidden_targets: bool

When visibility hides the points: keep them as transparent hover and click targets (true, the default), or omit them from the output entirely (false, for static output where nothing hovers).

Trait Implementations§

Source§

impl Default for GeomPoint

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Geom for GeomPoint

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

fn consumes_tooltips(&self) -> bool

Whether this geom calls [set_row_extras] (so it reads Aes::tooltip and Aes::data_attr, and a GGPlot::tooltip template on it has a visible effect). Default false; the build pipeline warns when a tooltip() template is set on a layer whose geom returns false here (review PR#141 finding 6, LOW: a template silently did nothing on e.g. geom_area/geom_boxplot/geom_ribbon). Point, segment, curve, path, line, hex, polygon, sf, rect/tile and col/bar/ histogram return true.
Source§

fn apply_element_geom(&mut self, el: &ElementGeom)

Recolour this geom’s built-in default colour/fill from the theme’s ink/paper/accent palette (B2-7’s element_geom), called once per layer before set_series_color — and only when the layer was not configured explicitly (geom_*_with(...); the build pipeline gates the call on the same explicit_style flag set_series_color’s brand-colour application is gated on). That gate, not a field-value comparison, is what keeps an explicit colour untouched: a geom that honours this replaces a field still at its own hard-coded default (black/(50, 50, 50) → ink, white → paper) by comparing its value, which cannot by itself tell an explicitly-set colour that happens to equal that default (e.g. GeomPoint { color: (0, 0, 0), .. } under geom_point_with) apart from one that was simply never touched — only skipping the call entirely for an explicitly-configured layer closes that gap (review PR#141 finding 4). Default no-op; None fields of ElementGeom change nothing, so the default theme (no ink/paper/accent set) stays byte-identical.
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 — unless Geom::keeps_na_as_break says otherwise. Default false; geom_rect returns true.
Source§

fn keeps_na_as_break(&self) -> bool

Whether a row with a non-finite position is a break rather than a removal (ggplot2’s GeomPath/GeomLine NA handling): the row still counts toward the “removed N rows” warning, but it is not deleted from the built DataFrame, so the geom’s own per-group point list still contains it — as a non-finite pixel position after the scale and coordinate transform, which crate::render::backend::DrawBackend::draw_line splits on into separate polylines (ggplot2’s NA-break semantics) instead of silently joining the finite points across the gap. Default false (the row is dropped, as for every other geom); line/path/step return true.
Source§

fn setup_data(&self, _data: &mut DataFrame, _warnings: &mut Vec<String>)

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. warnings is the layer’s own build-warnings sink (B3-5: added so GeomBoxplot can warn on an unparsable outlier value here, the same channel every other build warning uses — never eprintln!). Default: no-op.
Source§

fn inherit_aes(&self) -> bool

Whether the layer inherits the plot-level aesthetic mapping (ggplot2’s inherit.aes). Reference-line geoms return false, as in ggplot2, so a plot-level color/x/y mapping does not leak into a geom_hline. Default true.
Source§

fn mapped_only_columns(&self) -> &'static [&'static str]

Canonical column names this geom only reads when the user actually mapped the corresponding aesthetic (D3, B3-5) — never from a raw column that merely happens to share the name (e.g. a SQL alias literally called lower). build_layer drops any of these columns right after resolve_mappings unless the aesthetic was mapped. Default empty; GeomBoxplot returns ["lower", "middle", "upper", "outliers"].
Source§

fn validate_layer( &self, _pre_stat_columns: &[String], _stat_name: &str, ) -> Result<(), String>

Stat-dependent layer validation beyond required_aes (B3-5): called once per layer with the resolved (pre-stat, post-D3-drop) column names and the layer’s stat name, before the stat runs. Default no-op. GeomBoxplot requires lower/middle/upper to be mapped under stat="identity", else y.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V