Skip to main content

LineChart

Struct LineChart 

Source
pub struct LineChart<T, X, Y>
where T: 'static, X: PartialEq + Into<SharedString> + 'static, Y: PlotValue,
{ /* private fields */ }

Implementations§

Source§

impl<T, X, Y> LineChart<T, X, Y>
where X: PartialEq + Into<SharedString> + 'static, 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 crosshair and a dot mark the hovered point, and a tooltip shows its value. 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 tooltip_title(self, title: impl Fn(&T) -> SharedString + 'static) -> Self

Set the hover tooltip’s title for a datum, instead of its x value.

Source

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

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

The closure receives the datum and the value the row reads.

Source

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

Color the 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 crosshair, 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 x(self, x: impl Fn(&T) -> X + 'static) -> Self

Source

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

Source

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

Source

pub fn natural(self) -> Self

Source

pub fn linear(self) -> Self

Source

pub fn step_after(self) -> Self

Source

pub fn dot(self) -> Self

Source

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

Source

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

Show or hide the x-axis line and labels.

Default is true.

Source

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

Source

pub fn y_domain(self, min: Y, max: Y) -> Self

Pin the y axis to min..=max instead of fitting the line from zero.

Pin it where zero is not a meaningful baseline, such as a price line that would otherwise be pressed flat against the top. The range keeps the y_padding headroom above max, 10px by default, and the line is clipped to the plot, so a value outside the range stops at its edge. Nothing is drawn when min equals max.

Source

pub fn point_count(self, count: usize) -> Self

Lay the x axis out for count evenly spaced points instead of the data’s own length.

The data takes the leading points in order, the i-th item on the i-th point, and the rest stay empty, as an intraday chart does before the close. The data has to be contiguous from the first point: a missing item shifts every later one a point to the left. A count below the data’s length has no effect.

Source

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

Show the y axis’s tick labels, one at each of the y_tick_count ticks.

Default is false.

Source

pub fn y_axis_label_placement(self, placement: AxisLabelPlacement) -> Self

Set where the y-axis tick labels sit: in a gutter left of the plot, or inside it beside their grid lines.

Default is AxisLabelPlacement::Outside.

Source

pub fn y_tick_count(self, count: usize) -> Self

Set how many ticks the y axis carries, evenly spaced from the baseline to the top edge with both ends included.

The ticks place the horizontal grid lines and the tick labels, and each label reads the value the scale puts at its height. Values below 2 are raised to 2.

Default is 5.

Source

pub fn y_tick_format<S>(self, format: impl Fn(f64) -> S + 'static) -> Self
where S: Into<SharedString> + 'static,

Set the text of each y-axis tick label from the value at its tick.

Source

pub fn x_tick_count(self, count: usize) -> Self

Label count of the x values, spread evenly from the first to the last, instead of every tick_margin-th.

With Self::point_count set, the labels spread over all the points the axis is laid out for, so they keep their places as the data grows; one that falls past the data is not drawn yet.

Source

pub fn grid_columns(self, count: usize) -> Self

Divide the plot into count columns with vertical grid lines, the first on its left edge.

Default is 0, no vertical lines.

Source

pub fn grid_dashed(self, dashed: bool) -> Self

Draw the grid dashed or solid.

Default is true.

Source

pub fn reference_line(self, value: Y) -> Self

Draw a dashed line across the plot at value, such as a previous close.

Call again for more lines. A value outside the y axis is not drawn.

Source

pub fn y_padding(self, top: f32, bottom: f32) -> Self

Set the space kept clear above the highest value and below the lowest, in pixels.

Default is 10px above and none below.

Trait Implementations§

Source§

impl<T, X, Y> IntoElement for LineChart<T, X, Y>
where T: 'static, X: PartialEq + Into<SharedString> + 'static, Y: PlotValue,

Source§

type Element = PlotElement<LineChart<T, X, 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, X, Y> Plot for LineChart<T, X, Y>
where X: PartialEq + Into<SharedString> + 'static, Y: PlotValue,

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
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, X, Y> !RefUnwindSafe for LineChart<T, X, Y>

§

impl<T, X, Y> !Send for LineChart<T, X, Y>

§

impl<T, X, Y> !Sync for LineChart<T, X, Y>

§

impl<T, X, Y> !UnwindSafe for LineChart<T, X, Y>

§

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

§

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

§

impl<T, X, Y> UnsafeUnpin for LineChart<T, X, Y>
where Vec<T>: UnsafeUnpin, Option<Rc<dyn Fn(&T) -> X>>: UnsafeUnpin, Option<Rc<dyn Fn(&T) -> Y>>: UnsafeUnpin, Option<(Y, Y)>: UnsafeUnpin, TooltipContent<T>: 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