Struct plotters::prelude::GroupBy[][src]

pub struct GroupBy<T: DiscreteRanged>(_, _);
Expand description

Grouping the value in the coordinate specification.

This combinator doesn’t change the coordinate mapping behavior. But it changes how the key point is generated, this coordinate specification will enforce that only the first value in each group can be emitted as the bold key points.

This is useful, for example, when we have an X axis is a integer and denotes days. And we are expecting the tick mark denotes weeks, in this way we can make the range spec grouping by 7 elements. With the help of the GroupBy decorator, this can be archived quite easily:

use plotters::prelude::*;
let mut buf = vec![0;1024*768*3];
let area = BitMapBackend::with_buffer(buf.as_mut(), (1024, 768)).into_drawing_area();
let chart = ChartBuilder::on(&area)
    .build_cartesian_2d((0..100).group_by(7), 0..100)
    .unwrap();

To apply this combinator, call ToGroupByRange::group_by method on any discrete coordinate spec.

Trait Implementations

impl<T: Clone + DiscreteRanged> Clone for GroupBy<T>[src]

fn clone(&self) -> GroupBy<T>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<T: DiscreteRanged> DiscreteRanged for GroupBy<T>[src]

fn size(&self) -> usize[src]

Get the number of element in the range Note: we assume that all the ranged discrete coordinate has finite value Read more

fn index_of(&self, value: &Self::ValueType) -> Option<usize>[src]

Map a value to the index Read more

fn from_index(&self, index: usize) -> Option<Self::ValueType>[src]

Reverse map the index to the value Read more

fn values(&self) -> DiscreteValueIter<'_, Self> where
    Self: Sized
[src]

Return a iterator that iterates over the all possible values Read more

fn previous(&self, value: &Self::ValueType) -> Option<Self::ValueType>[src]

Returns the previous value in this range Read more

fn next(&self, value: &Self::ValueType) -> Option<Self::ValueType>[src]

Returns the next value in this range Read more

impl<T: DiscreteRanged> Ranged for GroupBy<T>[src]

type FormatOption = NoDefaultFormatting

This marker decides if Plotters default ValueFormatter implementation should be used. This assicated type can be one of follow two types: Read more

type ValueType = T::ValueType

The type of this value in this range specification

fn map(&self, value: &T::ValueType, limit: (i32, i32)) -> i32[src]

This function maps the value to i32, which is the drawing coordinate

fn range(&self) -> Range<T::ValueType>[src]

Get the range of this value

fn key_points<HintType: KeyPointHint>(
    &self,
    hint: HintType
) -> Vec<T::ValueType>
[src]

This function gives the key points that we can draw a grid based on this

fn axis_pixel_range(&self, limit: (i32, i32)) -> Range<i32>[src]

This function provides the on-axis part of its range

impl<T, R: DiscreteRanged<ValueType = T> + ValueFormatter<T>> ValueFormatter<T> for GroupBy<R>[src]

fn format(value: &T) -> String[src]

Format the value

Auto Trait Implementations

impl<T> RefUnwindSafe for GroupBy<T> where
    T: RefUnwindSafe

impl<T> Send for GroupBy<T> where
    T: Send

impl<T> Sync for GroupBy<T> where
    T: Sync

impl<T> Unpin for GroupBy<T> where
    T: Unpin

impl<T> UnwindSafe for GroupBy<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> AsRangedCoord for T where
    T: Ranged
[src]

type CoordDescType = T

type Value = <T as Ranged>::ValueType

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<DC> ReversibleRanged for DC where
    DC: DiscreteRanged
[src]

pub fn unmap(&Self, i32, (i32, i32)) -> Option<<DC as Ranged>::ValueType>[src]

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.