plotters::element

Struct Pie

Source
pub struct Pie<'a, Coord, Label: Display> { /* private fields */ }
Expand description

A Pie Graph

Implementations§

Source§

impl<'a, Label: Display> Pie<'a, (i32, i32), Label>

Source

pub fn new( center: &'a (i32, i32), radius: &'a f64, sizes: &'a [f64], colors: &'a [RGBColor], labels: &'a [Label], ) -> Self

Build a Pie object. Assumes a start angle at 0.0, which is aligned to the horizontal axis.

Source

pub fn start_angle(&mut self, start_angle: f64)

Pass an angle in degrees to change the default. Default is set to start at 0, which is aligned on the x axis.

use plotters::prelude::*;
let mut pie = Pie::new(&(50,50), &10.0, &[50.0, 25.25, 20.0, 5.5], &[RED, BLUE, GREEN, WHITE], &["Red", "Blue", "Green", "White"]);
pie.start_angle(-90.0);  // retract to a right angle, so it starts aligned to a vertical Y axis.
Source

pub fn label_style<T: Into<TextStyle<'a>>>(&mut self, label_style: T)

Set the label style.

Source

pub fn label_offset(&mut self, offset_to_radius: f64)

Sets the offset to labels, to distanciate them further/closer from the center.

Source

pub fn percentages<T: Into<TextStyle<'a>>>(&mut self, label_style: T)

enables drawing the wedge’s percentage in the middle of the wedge, with the given style

Source

pub fn donut_hole(&mut self, hole_radius: f64)

Enables creating a donut chart with a hole of the specified radius.

The passed value must be greater than zero and lower than the chart overall radius, otherwise it’ll be ignored.

Trait Implementations§

Source§

impl<'a, DB: DrawingBackend, Label: Display> Drawable<DB> for Pie<'a, (i32, i32), Label>

Source§

fn draw<I: Iterator<Item = BackendCoord>>( &self, _pos: I, backend: &mut DB, _parent_dim: (u32, u32), ) -> Result<(), DrawingErrorKind<DB::ErrorType>>

Actually draws the element. The key points is already translated into the image coordinate and can be used by DC directly
Source§

impl<'a, Label: Display> PointCollection<'a, (i32, i32)> for &'a Pie<'a, (i32, i32), Label>

Source§

type Point = &'a (i32, i32)

The item in point iterator
Source§

type IntoIter = Once<&'a (i32, i32)>

The point iterator
Source§

fn point_iter(self) -> Once<&'a (i32, i32)>

framework to do the coordinate mapping

Auto Trait Implementations§

§

impl<'a, Coord, Label> Freeze for Pie<'a, Coord, Label>

§

impl<'a, Coord, Label> RefUnwindSafe for Pie<'a, Coord, Label>
where Coord: RefUnwindSafe, Label: RefUnwindSafe,

§

impl<'a, Coord, Label> Send for Pie<'a, Coord, Label>
where Coord: Sync, Label: Sync,

§

impl<'a, Coord, Label> Sync for Pie<'a, Coord, Label>
where Coord: Sync, Label: Sync,

§

impl<'a, Coord, Label> Unpin for Pie<'a, Coord, Label>

§

impl<'a, Coord, Label> UnwindSafe for Pie<'a, Coord, Label>
where Coord: RefUnwindSafe, Label: RefUnwindSafe,

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

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

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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 320 bytes