Skip to main content

PieChart

Struct PieChart 

Source
pub struct PieChart<T: 'static> { /* private fields */ }

Implementations§

Source§

impl<T> PieChart<T>

Source

pub fn new<I>(data: I) -> Self
where I: IntoIterator<Item = T>,

Source

pub fn id(self, id: impl Into<ElementId>) -> Self

Name this chart’s ElementId, replacing the default taken from the construction site.

Pass one where a single construction site renders several of these charts as siblings: they share the default id, and with it one hover state and one path cache. The id must be unique among those siblings.

Source

pub fn interactive(self, interactive: bool) -> Self

Turn this chart’s interactive layer on or off. On by default.

The layer is the hitbox under the cursor and what it drives: the hovered slice lifts out of the ring, and a tooltip shows its value and share. Turn it off for a chart that only decorates, or one an element above it wants the cursor for: without a hitbox it neither answers the mouse nor takes the hover from what sits over it. A chart that is off also drops its path cache, which is keyed on the same id.

Source

pub fn name(self, name: impl Into<SharedString>) -> Self

Set the series name shown in the hover tooltip row (e.g. “Desktop”).

Source

pub fn inner_radius(self, inner_radius: f32) -> Self

Set the inner radius of the pie chart.

Source

pub fn inner_radius_fn( self, inner_radius_fn: impl Fn(&ArcData<'_, T>) -> f32 + 'static, ) -> Self

Set the inner radius of the pie chart based on the arc data.

Source

pub fn outer_radius(self, outer_radius: f32) -> Self

Set the outer radius of the pie chart.

Source

pub fn outer_radius_fn( self, outer_radius_fn: impl Fn(&ArcData<'_, T>) -> f32 + 'static, ) -> Self

Set the outer radius of the pie chart based on the arc data.

Source

pub fn pad_angle(self, pad_angle: f32) -> Self

Set the pad angle of the pie chart.

Source

pub fn value(self, value: impl Fn(&T) -> f32 + 'static) -> Self

Source

pub fn color<H>(self, color: impl Fn(&T) -> H + 'static) -> Self
where H: Into<Hsla> + 'static,

Set the color of the pie chart.

Source

pub fn label(self, label: impl Fn(&T) -> SharedString + 'static) -> Self

Set the label text for each slice.

Once set, a “leader line + text” is drawn outside the ring for every slice.

Source

pub fn label_line_color(self, color: impl Fn(&T) -> Hsla + 'static) -> Self

Set the leader line color per slice (defaults to cx.theme().border).

Source

pub fn label_color(self, color: Hsla) -> Self

Set the label text color (defaults to cx.theme().foreground).

Source

pub fn label_gap(self, gap: f32) -> Self

Set the extra gap between outer_radius and the label radius (defaults to 15px).

Source

pub fn tooltip_name(self, name: impl Fn(&T) -> SharedString + 'static) -> Self

Name the slice under the cursor in the hover tooltip’s row, beside its value. Falls back to name, the one name the whole series carries.

A pie shows one number per slice, so the slice’s own name is what the row wants; a single series name leaves the row reading as a swatch and a number with a gap between them. The alternative was to title the tooltip from label, but that also draws the leader lines around the ring.

Source

pub fn tooltip_value( self, value: impl Fn(&T, f32, f32) -> SharedString + 'static, ) -> Self

Set the text of the hover tooltip’s row, the value the slice is worth. Defaults to the raw value followed by its share in parentheses.

The closure receives the datum, the value value returned for it, and that value’s share of the total as a percentage. Set it wherever the raw number is not what a reader should see: a value that is already a ratio reads as 0.35 (35.0%) by default, and a chart drawn from adjusted values — a floor that keeps a hairline slice visible, say — would report the adjustment as though it were the datum.

Trait Implementations§

Source§

impl<T: 'static> IntoElement for PieChart<T>

Source§

type Element = PlotElement<PieChart<T>>

The specific type of element into which the implementing type is converted. Useful for converting other types into elements automatically, like Strings
Source§

fn into_element(self) -> Self::Element

Convert self into a type that implements Element.
Source§

fn into_any_element(self) -> AnyElement

Convert self into a dynamically-typed AnyElement.
Source§

impl<T> Plot for PieChart<T>

Source§

fn paint(&mut self, bounds: Bounds<Pixels>, window: &mut Window, cx: &mut App)

Source§

fn id(&self) -> Option<ElementId>

A stable element id that enables interactive tooltip support for this plot. Read more
Source§

fn tooltip_state( &self, position: Point<Pixels>, bounds: Bounds<Pixels>, _cx: &App, ) -> Option<TooltipState>

Map the cursor to the tooltip state to display. Read more
Source§

fn hover( &mut self, hover: Option<&PlotHover>, window: &mut Window, cx: &mut App, )

Receive the hovered datum this frame, before Plot::tooltip and Plot::paint run. Read more
Source§

fn tooltip( &self, state: &TooltipState, cursor: Point<Pixels>, bounds: Bounds<Pixels>, _window: &mut Window, cx: &mut App, ) -> Option<AnyElement>

Render the tooltip overlay for the active TooltipState. Read more
Source§

fn prepaint( &mut self, _bounds: Bounds<Pixels>, _window: &mut Window, _cx: &mut App, ) -> Vec<AnyElement>

Lay out and place the child elements this plot hosts (e.g. element labels). Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for PieChart<T>

§

impl<T> !Send for PieChart<T>

§

impl<T> !Sync for PieChart<T>

§

impl<T> !UnwindSafe for PieChart<T>

§

impl<T> Freeze for PieChart<T>
where Vec<T>: Freeze, Option<Rc<dyn Fn(&ArcData<'_, T>) -> f32>>: Freeze, Option<Rc<dyn Fn(&T) -> f32>>: Freeze, Option<Rc<dyn Fn(&T) -> Hsla>>: Freeze, Option<Rc<dyn Fn(&T) -> SharedString>>: Freeze, Option<Rc<dyn Fn(&T, f32, f32) -> SharedString>>: Freeze,

§

impl<T> Unpin for PieChart<T>
where Vec<T>: Unpin, Option<Rc<dyn Fn(&ArcData<'_, T>) -> f32>>: Unpin, Option<Rc<dyn Fn(&T) -> f32>>: Unpin, Option<Rc<dyn Fn(&T) -> Hsla>>: Unpin, Option<Rc<dyn Fn(&T) -> SharedString>>: Unpin, Option<Rc<dyn Fn(&T, f32, f32) -> SharedString>>: Unpin,

§

impl<T> UnsafeUnpin for PieChart<T>

Blanket Implementations§

Source§

impl<E> AnimationExt for E
where E: IntoElement + 'static,

Source§

fn with_animation( self, id: impl Into<ElementId>, animation: Animation, animator: impl Fn(Self, f32) -> Self + 'static, ) -> AnimationElement<Self>
where Self: Sized,

Render this component or element with an animation
Source§

fn with_animations( self, id: impl Into<ElementId>, animations: Vec<Animation>, animator: impl Fn(Self, usize, f32) -> Self + 'static, ) -> AnimationElement<Self>
where Self: Sized,

Render this component or element with a chain of animations
Source§

fn with_spring<T>( self, id: impl Into<ElementId>, animation: SpringAnimation<T>, animator: impl FnOnce(Self, <T as SpringTarget>::Output) -> Self + 'static, ) -> SpringAnimationElement<Self>
where Self: Sized, T: SpringTarget, <T as SpringTarget>::Output: 'static,

Renders this component or element at the value produced by a spring. Read more
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> FluentBuilder for T
where T: IntoElement,

Source§

fn map<U>(self, f: impl FnOnce(Self) -> U) -> U
where Self: Sized,

Imperatively modify self with the given closure.
Source§

fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Self
where Self: Sized,

Conditionally modify self with the given closure.
Source§

fn when_else( self, condition: bool, then: impl FnOnce(Self) -> Self, else_fn: impl FnOnce(Self) -> Self, ) -> Self
where Self: Sized,

Conditionally modify self with the given closure.
Source§

fn when_some<T>( self, option: Option<T>, then: impl FnOnce(Self, T) -> Self, ) -> Self
where Self: Sized,

Conditionally unwrap and modify self with the given closure, if the given option is Some.
Source§

fn when_none<T>( self, option: &Option<T>, then: impl FnOnce(Self) -> Self, ) -> Self
where Self: Sized,

Conditionally unwrap and modify self with the given closure, if the given option is None.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more