pub struct SankeyChart<T: 'static> { /* private fields */ }Expand description
A Sankey diagram, layout modeled after d3-sankey.
Links reference nodes by their index in the node list; map string ids to indices before constructing.
Implementations§
Source§impl<T> SankeyChart<T>
impl<T> SankeyChart<T>
Sourcepub fn new<I, L>(nodes: I, links: L) -> Self
pub fn new<I, L>(nodes: I, links: L) -> Self
Create a chart from nodes and links; links reference nodes by their
index in nodes (map string ids to indices before constructing).
Sourcepub fn node_width(self, node_width: f32) -> Self
pub fn node_width(self, node_width: f32) -> Self
Set the node rectangle width. Defaults to 10.
Sourcepub fn node_padding(self, node_padding: f32) -> Self
pub fn node_padding(self, node_padding: f32) -> Self
Set the vertical gap between nodes in a column. Defaults to 16.
Sourcepub fn node_align(self, align: SankeyAlign) -> Self
pub fn node_align(self, align: SankeyAlign) -> Self
Set the node alignment. Defaults to SankeyAlign::Justify.
Sourcepub fn iterations(self, iterations: usize) -> Self
pub fn iterations(self, iterations: usize) -> Self
Set the number of relaxation passes. Defaults to 6.
Sourcepub fn value_scale(self, value_scale: SankeyValueScale) -> Self
pub fn value_scale(self, value_scale: SankeyValueScale) -> Self
Set how flow values map to node heights.
Defaults to SankeyValueScale::Linear. Use SankeyValueScale::Sqrt
to keep a dominant flow from dwarfing the small ones without
pre-transforming the data; labels still receive the raw values.
Sourcepub fn node_corner_radius(self, radius: impl Into<Pixels>) -> Self
pub fn node_corner_radius(self, radius: impl Into<Pixels>) -> Self
Set the corner radius of the node rectangles. Defaults to 0.
Sourcepub fn node_color<H>(self, color: impl Fn(&T) -> H + 'static) -> Self
pub fn node_color<H>(self, color: impl Fn(&T) -> H + 'static) -> Self
Set the color of each node.
Defaults to cycling the theme chart palette by node index.
Sourcepub fn node_label(self, label: impl Fn(&T) -> SharedString + 'static) -> Self
pub fn node_label(self, label: impl Fn(&T) -> SharedString + 'static) -> Self
Set the name label of each node, drawn in muted foreground. No name label is drawn unless set.
Sourcepub fn value_label(
self,
label: impl Fn(&T, f64) -> SharedString + 'static,
) -> Self
pub fn value_label( self, label: impl Fn(&T, f64) -> SharedString + 'static, ) -> Self
Set the value label of each node, drawn above the name label. No value label is drawn unless set.
The closure receives the datum and the node’s raw computed throughput (max of incoming and outgoing flow, in unscaled units).
Sourcepub fn labels(
self,
labels: impl Fn(&T, f64) -> Vec<SankeyLabel> + 'static,
) -> Self
pub fn labels( self, labels: impl Fn(&T, f64) -> Vec<SankeyLabel> + 'static, ) -> Self
Set fully custom node labels, one SankeyLabel per line, top to
bottom. Takes precedence over node_label/value_label when set;
unset by default.
The closure receives the datum and the node’s raw computed throughput (max of incoming and outgoing flow, in unscaled units).
Sourcepub fn link_opacity(self, opacity: f32) -> Self
pub fn link_opacity(self, opacity: f32) -> Self
Set the opacity of the link ribbons. Defaults to 0.3.
Sourcepub fn min_link_width(self, width: f32) -> Self
pub fn min_link_width(self, width: f32) -> Self
Set the minimum ribbon thickness, so tiny flows stay visible. Defaults to 1.
Trait Implementations§
Source§impl<T: 'static> Element for SankeyChart<T>
impl<T: 'static> Element for SankeyChart<T>
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: 'static> IntoElement for SankeyChart<T>
impl<T: 'static> IntoElement for SankeyChart<T>
Source§type Element = SankeyChart<T>
type Element = SankeyChart<T>
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> Plot for SankeyChart<T>
impl<T> Plot for SankeyChart<T>
fn paint(&mut self, bounds: Bounds<Pixels>, window: &mut Window, cx: &mut App)
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>
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> !RefUnwindSafe for SankeyChart<T>
impl<T> !Send for SankeyChart<T>
impl<T> !Sync for SankeyChart<T>
impl<T> !UnwindSafe for SankeyChart<T>
impl<T> Freeze for SankeyChart<T>
impl<T> Unpin for SankeyChart<T>
impl<T> UnsafeUnpin for SankeyChart<T>where
Vec<T>: UnsafeUnpin,
Option<Rc<dyn Fn(&T) -> Hsla>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T) -> SharedString>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T, f64) -> SharedString>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T, f64) -> Vec<SankeyLabel>>>: 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