pub struct Sparkline<'a> { /* private fields */ }Expand description
Widget to render a sparkline over one or more lines.
Each bar in a Sparkline represents a value from the provided dataset. The height of the bar
is determined by the value in the dataset.
You can create a Sparkline using Sparkline::default.
The data is set using Sparkline::data. The data can be a slice of u64, Option<u64>, or a
SparklineBar. For the Option<u64> and SparklineBar cases, a data point with a value
of None is interpreted an as the absence of a value.
Sparkline can be styled either using Sparkline::style or preferably using the methods
provided by the Stylize trait. The style may be set for the entire
widget or for individual bars by setting individual SparklineBar::style.
The bars are rendered using a set of symbols. The default set is symbols::bar::NINE_LEVELS.
You can change the set using Sparkline::bar_set.
If the data provided is a slice of u64 or Option<u64>, the bars will be styled with the
style of the sparkline. If the data is a slice of SparklineBar, the bars will be
styled with the style of the sparkline combined with the style provided in the SparklineBar
if it is set, otherwise the sparkline style will be used.
Absent values and will be rendered with the style set by Sparkline::absent_value_style and
the symbol set by Sparkline::absent_value_symbol.
§Setter methods
Sparkline::blockwraps the sparkline in aBlockSparkline::datadefines the dataset, you’ll almost always want to use itSparkline::maxsets the maximum value of barsSparkline::directionsets the render direction
§Examples
use ratatui::{
style::{Color, Style, Stylize},
symbols,
widgets::{Block, RenderDirection, Sparkline},
};
Sparkline::default()
.block(Block::bordered().title("Sparkline"))
.data(&[0, 2, 3, 4, 1, 4, 10])
.max(5)
.direction(RenderDirection::RightToLeft)
.style(Style::default().red().on_white())
.absent_value_style(Style::default().fg(Color::Red))
.absent_value_symbol(symbols::shade::FULL);Implementations§
Source§impl<'a> Sparkline<'a>
impl<'a> Sparkline<'a>
Sourcepub fn style<S: Into<Style>>(self, style: S) -> Self
pub fn style<S: Into<Style>>(self, style: S) -> Self
Sets the style of the entire widget.
style accepts any type that is convertible to Style (e.g. Style, Color, or
your own type that implements Into<Style>).
The foreground corresponds to the bars while the background is everything else.
Sourcepub fn absent_value_style<S: Into<Style>>(self, style: S) -> Self
pub fn absent_value_style<S: Into<Style>>(self, style: S) -> Self
Sets the style to use for absent values.
Absent values are values in the dataset that are None.
style accepts any type that is convertible to Style (e.g. Style, Color, or
your own type that implements Into<Style>).
The foreground corresponds to the bars while the background is everything else.
Sourcepub fn absent_value_symbol(self, symbol: impl Into<String>) -> Self
pub fn absent_value_symbol(self, symbol: impl Into<String>) -> Self
Sets the symbol to use for absent values.
Absent values are values in the dataset that are None.
The default is symbols::shade::EMPTY.
Sourcepub fn data<T>(self, data: T) -> Self
pub fn data<T>(self, data: T) -> Self
Sets the dataset for the sparkline.
Each item in the dataset is a bar in the sparkline. The height of the bar is determined by the value in the dataset.
The data can be a slice of u64, Option<u64>, or a SparklineBar. For the
Option<u64> and SparklineBar cases, a data point with a value of None is
interpreted an as the absence of a value.
If the data provided is a slice of u64 or Option<u64>, the bars will be styled with the
style of the sparkline. If the data is a slice of SparklineBar, the bars will be
styled with the style of the sparkline combined with the style provided in the
SparklineBar if it is set, otherwise the sparkline style will be used.
Absent values and will be rendered with the style set by Sparkline::absent_value_style
and the symbol set by Sparkline::absent_value_symbol.
§Examples
Create a Sparkline from a slice of u64:
use ratatui::{layout::Rect, widgets::Sparkline, Frame};
let sparkline = Sparkline::default().data(&[1, 2, 3]);
frame.render_widget(sparkline, area);Create a Sparkline from a slice of Option<u64> such that some bars are absent:
let data = vec![Some(1), None, Some(3)];
let sparkline = Sparkline::default().data(data);
frame.render_widget(sparkline, area);Create a Sparkline from a a Vec of SparklineBar such that some bars are styled:
let data = vec![
SparklineBar::from(1).style(Some(Style::default().fg(Color::Red))),
SparklineBar::from(2),
SparklineBar::from(3).style(Some(Style::default().fg(Color::Blue))),
];
let sparkline = Sparkline::default().data(data);
frame.render_widget(sparkline, area);Sourcepub const fn max(self, max: u64) -> Self
pub const fn max(self, max: u64) -> Self
Sets the maximum value of bars.
Every bar will be scaled accordingly. If no max is given, this will be the max in the dataset.
Sourcepub const fn bar_set(self, bar_set: Set) -> Self
pub const fn bar_set(self, bar_set: Set) -> Self
Sets the characters used to display the bars.
Can be symbols::bar::THREE_LEVELS, symbols::bar::NINE_LEVELS (default) or a custom
Set.
Sourcepub const fn direction(self, direction: RenderDirection) -> Self
pub const fn direction(self, direction: RenderDirection) -> Self
Sets the direction of the sparkline.
RenderDirection::LeftToRight by default.
Trait Implementations§
Source§impl WidgetRef for Sparkline<'_>
impl WidgetRef for Sparkline<'_>
Source§fn render_ref(&self, area: Rect, buf: &mut Buffer)
fn render_ref(&self, area: Rect, buf: &mut Buffer)
impl<'a> Eq for Sparkline<'a>
impl<'a> StructuralPartialEq for Sparkline<'a>
Auto Trait Implementations§
impl<'a> Freeze for Sparkline<'a>
impl<'a> RefUnwindSafe for Sparkline<'a>
impl<'a> Send for Sparkline<'a>
impl<'a> Sync for Sparkline<'a>
impl<'a> Unpin for Sparkline<'a>
impl<'a> UnwindSafe for Sparkline<'a>
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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 moreSource§impl<'a, T, U> Stylize<'a, T> for Uwhere
U: Styled<Item = T>,
impl<'a, T, U> Stylize<'a, T> for Uwhere
U: Styled<Item = T>,
fn bg<C>(self, color: C) -> T
fn fg<C>(self, color: C) -> T
fn add_modifier(self, modifier: Modifier) -> T
fn remove_modifier(self, modifier: Modifier) -> T
fn reset(self) -> T
Source§fn on_magenta(self) -> T
fn on_magenta(self) -> T
magenta.Source§fn on_dark_gray(self) -> T
fn on_dark_gray(self) -> T
dark_gray.Source§fn on_light_red(self) -> T
fn on_light_red(self) -> T
light_red.Source§fn light_green(self) -> T
fn light_green(self) -> T
light_green.Source§fn on_light_green(self) -> T
fn on_light_green(self) -> T
light_green.Source§fn light_yellow(self) -> T
fn light_yellow(self) -> T
light_yellow.Source§fn on_light_yellow(self) -> T
fn on_light_yellow(self) -> T
light_yellow.Source§fn light_blue(self) -> T
fn light_blue(self) -> T
light_blue.Source§fn on_light_blue(self) -> T
fn on_light_blue(self) -> T
light_blue.Source§fn light_magenta(self) -> T
fn light_magenta(self) -> T
light_magenta.Source§fn on_light_magenta(self) -> T
fn on_light_magenta(self) -> T
light_magenta.Source§fn light_cyan(self) -> T
fn light_cyan(self) -> T
light_cyan.Source§fn on_light_cyan(self) -> T
fn on_light_cyan(self) -> T
light_cyan.Source§fn not_italic(self) -> T
fn not_italic(self) -> T
ITALIC modifier.Source§fn underlined(self) -> T
fn underlined(self) -> T
UNDERLINED modifier.Source§fn not_underlined(self) -> T
fn not_underlined(self) -> T
UNDERLINED modifier.Source§fn slow_blink(self) -> T
fn slow_blink(self) -> T
SLOW_BLINK modifier.Source§fn not_slow_blink(self) -> T
fn not_slow_blink(self) -> T
SLOW_BLINK modifier.Source§fn rapid_blink(self) -> T
fn rapid_blink(self) -> T
RAPID_BLINK modifier.Source§fn not_rapid_blink(self) -> T
fn not_rapid_blink(self) -> T
RAPID_BLINK modifier.Source§fn not_reversed(self) -> T
fn not_reversed(self) -> T
REVERSED modifier.HIDDEN modifier.HIDDEN modifier.Source§fn crossed_out(self) -> T
fn crossed_out(self) -> T
CROSSED_OUT modifier.Source§fn not_crossed_out(self) -> T
fn not_crossed_out(self) -> T
CROSSED_OUT modifier.