pub struct TimeSeriesPlot { /* private fields */ }
Expand description
A structure representing a time series plot.
The TimeSeriesPlot
struct facilitates the creation and customization of time series plots with various options
for data selection, grouping, layout configuration, and aesthetic adjustments. It supports the addition of multiple
series, customization of marker shapes, colors, sizes, opacity settings, and comprehensive layout customization
including titles, axes, and legends.
§Arguments
data
- A reference to theDataFrame
containing the data to be plotted.x
- A string slice specifying the column name to be used for the x-axis, typically representing time or dates.y
- A string slice specifying the column name to be used for the y-axis, typically representing the primary metric.additional_series
- An optional vector of string slices specifying additional y-axis columns to be plotted as series.size
- An optionalusize
specifying the size of the markers or line thickness.color
- An optionalRgb
value specifying the color of the markers. This is used whengroup
is not specified.colors
- An optional vector ofRgb
values specifying the colors for the markers. This is used whengroup
is specified to differentiate between groups.with_shape
- An optionalbool
indicating whether to use shapes for markers in the plot.shape
- An optionalShape
specifying the shape of the markers. This is used whengroup
is not specified.shapes
- An optional vector ofShape
values specifying multiple shapes for the markers when plotting multiple groups.width
- An optionalf64
specifying the width of the plotted lines.line
- An optionalLineStyle
specifying the style of the line. This is used whenadditional_series
is not specified.lines
- An optional vector ofLineStyle
enums specifying the styles of lines for each plotted series. This is used whenadditional_series
is specified to differentiate between multiple series.plot_title
- An optionalText
struct specifying the title of the plot.x_title
- An optionalText
struct specifying the title of the x-axis.y_title
- An optionalText
struct specifying the title of the y-axis.legend_title
- An optionalText
struct specifying the title of the legend.x_axis
- An optional reference to anAxis
struct for customizing the x-axis.y_axis
- An optional reference to anAxis
struct for customizing the y-axis.y_axis2
- An optional reference to anAxis
struct for customizing the y-axis2.legend
- An optional reference to aLegend
struct for customizing the legend of the plot (e.g., positioning, font, etc.).
§Examples
use plotlars::{Axis, Legend, Line, Plot, Rgb, Shape, Text, TimeSeriesPlot};
let dataset = LazyCsvReader::new("data/revenue_and_cost.csv")
.finish()
.unwrap()
.select([
col("Date").cast(DataType::String),
col("Revenue").cast(DataType::Int32),
col("Cost").cast(DataType::Int32),
])
.collect()
.unwrap();
TimeSeriesPlot::builder()
.data(&dataset)
.x("Date")
.y("Revenue")
.additional_series(vec!["Cost"])
.size(8)
.colors(vec![
Rgb(0, 0, 255),
Rgb(255, 0, 0),
])
.lines(vec![Line::Dash, Line::Solid])
.with_shape(true)
.shapes(vec![Shape::Circle, Shape::Square])
.plot_title(
Text::from("Time Series Plot")
.font("Arial")
.size(18)
)
.legend(
&Legend::new()
.x(0.05)
.y(0.9)
)
.x_title("x")
.y_title(
Text::from("y")
.color(Rgb(0, 0, 255))
)
.y_title2(
Text::from("y2")
.color(Rgb(255, 0, 0))
)
.y_axis(
&Axis::new()
.value_color(Rgb(0, 0, 255))
.show_grid(false)
.zero_line_color(Rgb(0, 0, 0))
)
.y_axis2(
&Axis::new()
.axis_side(plotlars::AxisSide::Right)
.value_color(Rgb(255, 0, 0))
.show_grid(false)
)
.build()
.plot();
let dataset = LazyCsvReader::new("data/debilt_2023_temps.csv")
.with_has_header(true)
.with_try_parse_dates(true)
.finish()
.unwrap()
.with_columns(vec![
(col("tavg") / lit(10)).alias("tavg"),
(col("tmin") / lit(10)).alias("tmin"),
(col("tmax") / lit(10)).alias("tmax"),
])
.collect()
.unwrap();
TimeSeriesPlot::builder()
.data(&dataset)
.x("date")
.y("tavg")
.additional_series(vec!["tmin", "tmax"])
.colors(vec![
Rgb(128, 128, 128),
Rgb(0, 122, 255),
Rgb(255, 128, 0),
])
.lines(vec![
Line::Solid,
Line::Dot,
Line::Dot,
])
.plot_title("Temperature at De Bilt (2023)")
.legend_title("Legend")
.build()
.plot();
Implementations§
Trait Implementations§
Source§impl Clone for TimeSeriesPlot
impl Clone for TimeSeriesPlot
Source§fn clone(&self) -> TimeSeriesPlot
fn clone(&self) -> TimeSeriesPlot
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for TimeSeriesPlot
impl !RefUnwindSafe for TimeSeriesPlot
impl !Send for TimeSeriesPlot
impl !Sync for TimeSeriesPlot
impl Unpin for TimeSeriesPlot
impl !UnwindSafe for TimeSeriesPlot
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
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 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> ⓘ
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