Skip to main content

RadarChart

Struct RadarChart 

Source
pub struct RadarChart<T, Y>
where T: 'static, Y: PlotValue,
{ /* private fields */ }
Expand description

A radar (spider) chart.

Each datum is one dimension (a spoke), placed clockwise around the center starting at 12 o’clock. Add one series per RadarChart::value call; each series is drawn as a closed polygon connecting its values on every spoke.

Implementations§

Source§

impl<T, Y> RadarChart<T, Y>
where Y: PlotValue,

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: a dot per series marks the hovered dimension, and a tooltip shows a row each. 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 name of the most recently added series, shown in its tooltip row.

Call after the matching RadarChart::value (e.g. .value(..).stroke(..).name("Desktop")).

Source

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

Set the hover tooltip’s title for a datum, instead of its dimension label.

Source

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

Set the text of each tooltip row’s value; the raw number by default.

The closure receives the datum, the row’s index (the series’ index in the order value added them) and the value the row reads.

Source

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

Color each tooltip row’s value, such as green or red by its sign; the tooltip’s text color by default.

The closure receives the same arguments as tooltip_value.

Source

pub fn tooltip_content<E>( self, content: impl Fn(&T, &mut Window, &mut App) -> E + 'static, ) -> Self
where E: IntoElement,

Draw the tooltip box’s content for a datum yourself, in place of the title and rows, for a layout they cannot express such as a table.

The dots and where the box sits stay the chart’s, and tooltip_title, tooltip_value and tooltip_value_color no longer apply.

Source

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

Add a series to the radar chart.

Call multiple times to overlay multiple series, each paired with the matching RadarChart::stroke and RadarChart::fill calls.

Source

pub fn stroke(self, stroke: impl Into<Hsla>) -> Self

Set the stroke color of the most recently added series.

Defaults to the theme chart colors, cycled per series.

Source

pub fn fill(self, fill: impl Into<Background>) -> Self

Set the fill color of the most recently added series.

Defaults to the series stroke color with 0.3 opacity.

Source

pub fn label<L>(self, label: impl Fn(&T) -> L + 'static) -> Self
where L: Into<RadarLabel> + 'static,

Set the label for each dimension, shown outside the outer ring.

Return a string for a plain text label, or element.into_any_element() for a custom one; see RadarLabel for how the two differ.

ⓘ
RadarChart::new(data).label(|d| d.month.clone())

RadarChart::new(data).label(|d| {
    v_flex()
        .items_center()
        .child(Icon::new(IconName::Star).xsmall())
        .child(d.month.clone())
        .into_any_element()
})
Source

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

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

Element labels style themselves; this does not apply to them.

Source

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

Set the extra gap between the outer ring and the labels (defaults to 10px).

Source

pub fn max_value(self, max_value: Y) -> Self

Set the value at the outer ring.

Defaults to the maximum value across all series.

Source

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

Set the outer radius of the radar chart.

Defaults to 40% of the bounds height.

Source

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

Show or hide the grid rings and spokes.

Default is true.

Source

pub fn grid_levels(self, grid_levels: usize) -> Self

Set the number of concentric grid rings (defaults to 4).

Source

pub fn dot(self) -> Self

Show dots on the vertices of each series.

Trait Implementations§

Source§

impl<T, Y> IntoElement for RadarChart<T, Y>
where T: 'static, Y: PlotValue,

Source§

type Element = PlotElement<RadarChart<T, Y>>

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, Y> Plot for RadarChart<T, Y>
where Y: PlotValue,

Source§

fn prepaint( &mut self, bounds: Bounds<Pixels>, window: &mut Window, cx: &mut App, ) -> Vec<AnyElement>

Resolve every dimension’s label, keeping the text ones for paint and laying out the element ones here (measuring is illegal in paint).

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

Auto Trait Implementations§

§

impl<T, Y> !RefUnwindSafe for RadarChart<T, Y>

§

impl<T, Y> !Send for RadarChart<T, Y>

§

impl<T, Y> !Sync for RadarChart<T, Y>

§

impl<T, Y> !UnwindSafe for RadarChart<T, Y>

§

impl<T, Y> Freeze for RadarChart<T, Y>
where Vec<T>: Freeze, Vec<Rc<dyn Fn(&T) -> Y>>: Freeze, TooltipContent<T>: Freeze, Option<Rc<dyn Fn(&T) -> RadarLabel>>: Freeze, Option<Y>: Freeze,

§

impl<T, Y> Unpin for RadarChart<T, Y>
where Vec<T>: Unpin, Vec<Rc<dyn Fn(&T) -> Y>>: Unpin, TooltipContent<T>: Unpin, Option<Rc<dyn Fn(&T) -> RadarLabel>>: Unpin, Option<Y>: Unpin,

§

impl<T, Y> UnsafeUnpin for RadarChart<T, Y>
where Vec<T>: UnsafeUnpin, Vec<Rc<dyn Fn(&T) -> Y>>: UnsafeUnpin, TooltipContent<T>: UnsafeUnpin, Option<Rc<dyn Fn(&T) -> RadarLabel>>: UnsafeUnpin, Option<Y>: UnsafeUnpin,

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