pub struct RadarChart<T, Y>{ /* 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>
impl<T, Y> RadarChart<T, Y>
pub fn new<I>(data: I) -> Selfwhere
I: IntoIterator<Item = T>,
Sourcepub fn id(self, id: impl Into<ElementId>) -> Self
pub fn id(self, id: impl Into<ElementId>) -> Self
Enable an interactive hover tooltip (a dot and row per series at the hovered dimension).
The id must be unique among sibling elements. Without it, the chart
stays a non-interactive plot.
Sourcepub fn name(self, name: impl Into<SharedString>) -> Self
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")).
Sourcepub fn value(self, value: impl Fn(&T) -> Y + 'static) -> Self
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.
Sourcepub fn stroke(self, stroke: impl Into<Hsla>) -> Self
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.
Sourcepub fn fill(self, fill: impl Into<Background>) -> Self
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.
Sourcepub fn label<L>(self, label: impl Fn(&T) -> L + 'static) -> Selfwhere
L: Into<RadarLabel> + 'static,
pub fn label<L>(self, label: impl Fn(&T) -> L + 'static) -> Selfwhere
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()
})Sourcepub fn label_color(self, color: impl Into<Hsla>) -> Self
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.
Sourcepub fn label_gap(self, gap: f32) -> Self
pub fn label_gap(self, gap: f32) -> Self
Set the extra gap between the outer ring and the labels (defaults to 10px).
Sourcepub fn max_value(self, max_value: Y) -> Self
pub fn max_value(self, max_value: Y) -> Self
Set the value at the outer ring.
Defaults to the maximum value across all series.
Sourcepub fn outer_radius(self, outer_radius: f32) -> Self
pub fn outer_radius(self, outer_radius: f32) -> Self
Set the outer radius of the radar chart.
Defaults to 40% of the bounds height.
Sourcepub fn grid_levels(self, grid_levels: usize) -> Self
pub fn grid_levels(self, grid_levels: usize) -> Self
Set the number of concentric grid rings (defaults to 4).
Trait Implementations§
Source§impl<T, Y> Element for RadarChart<T, Y>
impl<T, Y> Element for RadarChart<T, Y>
Source§type RequestLayoutState = ()
type RequestLayoutState = ()
Element::request_layout. A mutable reference to this state is subsequently
provided to Element::prepaint and Element::paint.Source§type PrepaintState = (Option<Hitbox>, Vec<AnyElement>, Option<AnyElement>)
type PrepaintState = (Option<Hitbox>, Vec<AnyElement>, Option<AnyElement>)
Element::prepaint. A mutable reference to this state is subsequently
provided to Element::paint.Source§fn id(&self) -> Option<ElementId>
fn id(&self) -> Option<ElementId>
Source§fn source_location(&self) -> Option<&'static Location<'static>>
fn source_location(&self) -> Option<&'static Location<'static>>
Source§fn request_layout(
&mut self,
_: Option<&GlobalElementId>,
_: Option<&InspectorElementId>,
window: &mut Window,
cx: &mut App,
) -> (LayoutId, Self::RequestLayoutState)
fn request_layout( &mut self, _: Option<&GlobalElementId>, _: Option<&InspectorElementId>, window: &mut Window, cx: &mut App, ) -> (LayoutId, Self::RequestLayoutState)
Source§fn prepaint(
&mut self,
global_id: Option<&GlobalElementId>,
_: Option<&InspectorElementId>,
bounds: Bounds<Pixels>,
_: &mut Self::RequestLayoutState,
window: &mut Window,
cx: &mut App,
) -> Self::PrepaintState
fn prepaint( &mut self, global_id: Option<&GlobalElementId>, _: Option<&InspectorElementId>, bounds: Bounds<Pixels>, _: &mut Self::RequestLayoutState, window: &mut Window, cx: &mut App, ) -> Self::PrepaintState
Element::request_layout().Source§fn paint(
&mut self,
global_id: Option<&GlobalElementId>,
_: Option<&InspectorElementId>,
bounds: Bounds<Pixels>,
_: &mut Self::RequestLayoutState,
prepaint: &mut Self::PrepaintState,
window: &mut Window,
cx: &mut App,
)
fn paint( &mut self, global_id: Option<&GlobalElementId>, _: Option<&InspectorElementId>, bounds: Bounds<Pixels>, _: &mut Self::RequestLayoutState, prepaint: &mut Self::PrepaintState, window: &mut Window, cx: &mut App, )
Element::request_layout().Source§fn a11y_role(&self) -> Option<Role>
fn a11y_role(&self) -> Option<Role>
None are not included in the accessibility tree. Read moreSource§fn write_a11y_info(&self, _node: &mut Node)
fn write_a11y_info(&self, _node: &mut Node)
a11y_role() returns Some. Read moreSource§fn a11y_synthetic_children(
&mut self,
_prepaint: &mut Self::PrepaintState,
_builder: &mut A11ySubtreeBuilder<'_>,
)
fn a11y_synthetic_children( &mut self, _prepaint: &mut Self::PrepaintState, _builder: &mut A11ySubtreeBuilder<'_>, )
Source§fn into_any(self) -> AnyElement
fn into_any(self) -> AnyElement
AnyElement.Source§impl<T, Y> IntoElement for RadarChart<T, Y>
impl<T, Y> IntoElement for RadarChart<T, Y>
Source§type Element = RadarChart<T, Y>
type Element = RadarChart<T, Y>
Source§fn into_element(self) -> Self::Element
fn into_element(self) -> Self::Element
Element.Source§fn into_any_element(self) -> AnyElement
fn into_any_element(self) -> AnyElement
AnyElement.Source§impl<T, Y> Plot for RadarChart<T, Y>
impl<T, Y> Plot for RadarChart<T, Y>
Source§fn prepaint(
&mut self,
bounds: Bounds<Pixels>,
window: &mut Window,
cx: &mut App,
) -> Vec<AnyElement>
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).
fn paint(&mut self, bounds: Bounds<Pixels>, window: &mut Window, cx: &mut App)
Source§fn id(&self) -> Option<ElementId>
fn id(&self) -> Option<ElementId>
Source§fn tooltip_state(
&self,
position: Point<Pixels>,
bounds: Bounds<Pixels>,
_cx: &App,
) -> Option<TooltipState>
fn tooltip_state( &self, position: Point<Pixels>, bounds: Bounds<Pixels>, _cx: &App, ) -> Option<TooltipState>
Source§fn tooltip(
&self,
state: &TooltipState,
cursor: Point<Pixels>,
bounds: Bounds<Pixels>,
_window: &mut Window,
cx: &mut App,
) -> Option<AnyElement>
fn tooltip( &self, state: &TooltipState, cursor: Point<Pixels>, bounds: Bounds<Pixels>, _window: &mut Window, cx: &mut App, ) -> Option<AnyElement>
TooltipState. Read moreAuto 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>
impl<T, Y> Unpin for RadarChart<T, Y>
impl<T, Y> UnsafeUnpin for RadarChart<T, Y>where
Vec<T>: UnsafeUnpin,
Vec<Rc<dyn Fn(&T) -> Y>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T) -> RadarLabel>>: UnsafeUnpin,
Option<Y>: UnsafeUnpin,
Blanket Implementations§
Source§impl<E> AnimationExt for Ewhere
E: IntoElement + 'static,
impl<E> AnimationExt for Ewhere
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,
fn with_animation(
self,
id: impl Into<ElementId>,
animation: Animation,
animator: impl Fn(Self, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
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,
fn with_animations(
self,
id: impl Into<ElementId>,
animations: Vec<Animation>,
animator: impl Fn(Self, usize, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
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>
fn with_spring<T>( self, id: impl Into<ElementId>, animation: SpringAnimation<T>, animator: impl FnOnce(Self, <T as SpringTarget>::Output) -> Self + 'static, ) -> SpringAnimationElement<Self>
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FluentBuilder for Twhere
T: IntoElement,
impl<T> FluentBuilder for Twhere
T: IntoElement,
Source§fn map<U>(self, f: impl FnOnce(Self) -> U) -> Uwhere
Self: Sized,
fn map<U>(self, f: impl FnOnce(Self) -> U) -> Uwhere
Self: Sized,
Source§fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Selfwhere
Self: Sized,
fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Selfwhere
Self: Sized,
Source§fn when_else(
self,
condition: bool,
then: impl FnOnce(Self) -> Self,
else_fn: impl FnOnce(Self) -> Self,
) -> Selfwhere
Self: Sized,
fn when_else(
self,
condition: bool,
then: impl FnOnce(Self) -> Self,
else_fn: impl FnOnce(Self) -> Self,
) -> Selfwhere
Self: Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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