pub struct OhlcPlot { /* private fields */ }Expand description
A structure representing an OHLC (Open-High-Low-Close) financial chart.
The OhlcPlot struct facilitates the creation and customization of OHLC charts commonly used
for visualizing financial data such as stock prices. It supports multiple OHLC series, custom
styling for increasing/decreasing values, hover information, and comprehensive layout customization
including range selectors and sliders for interactive time navigation.
§Arguments
data- A reference to theDataFramecontaining the data to be plotted.dates- A string slice specifying the column name for dates/timestamps.open- A string slice specifying the column name for opening values.high- A string slice specifying the column name for high values.low- A string slice specifying the column name for low values.close- A string slice specifying the column name for closing values.tick_width- An optionalf64specifying the width of the open/close ticks (0-1 range).plot_title- An optionalTextstruct specifying the title of the plot.x_title- An optionalTextstruct specifying the title of the x-axis.y_title- An optionalTextstruct specifying the title of the y-axis.x_axis- An optional reference to anAxisstruct for customizing the x-axis.y_axis- An optional reference to anAxisstruct for customizing the y-axis.
§Examples
use plotlars::{Axis, OhlcPlot, Plot};
use polars::prelude::*;
let dates = vec![
"2024-01-01", "2024-01-02", "2024-01-03", "2024-01-04", "2024-01-05",
];
let open_prices = vec![100.0, 102.5, 101.0, 103.5, 105.0];
let high_prices = vec![103.0, 104.0, 103.5, 106.0, 107.5];
let low_prices = vec![99.0, 101.5, 100.0, 102.5, 104.0];
let close_prices = vec![102.5, 101.0, 103.5, 105.0, 104.5];
let stock_data = df! {
"date" => dates,
"open" => open_prices,
"high" => high_prices,
"low" => low_prices,
"close" => close_prices,
}
.unwrap();
OhlcPlot::builder()
.data(&stock_data)
.dates("date")
.open("open")
.high("high")
.low("low")
.close("close")
.plot_title("Stock Price - Custom Axes")
.y_title("Price ($)")
.y_axis(&Axis::new().show_axis(true))
.build()
.plot();
Implementations§
Source§impl OhlcPlot
impl OhlcPlot
Sourcepub fn builder<'f1, 'f2, 'f3, 'f4, 'f5, 'f6, 'f7, 'f8>() -> OhlcPlotBuilder<'f1, 'f2, 'f3, 'f4, 'f5, 'f6, 'f7, 'f8>
pub fn builder<'f1, 'f2, 'f3, 'f4, 'f5, 'f6, 'f7, 'f8>() -> OhlcPlotBuilder<'f1, 'f2, 'f3, 'f4, 'f5, 'f6, 'f7, 'f8>
Examples found in repository?
examples/ohlc.rs (line 58)
4fn main() {
5 // Create sample OHLC data
6 let dates = vec![
7 "2024-01-01",
8 "2024-01-02",
9 "2024-01-03",
10 "2024-01-04",
11 "2024-01-05",
12 "2024-01-08",
13 "2024-01-09",
14 "2024-01-10",
15 "2024-01-11",
16 "2024-01-12",
17 "2024-01-15",
18 "2024-01-16",
19 "2024-01-17",
20 "2024-01-18",
21 "2024-01-19",
22 "2024-01-22",
23 "2024-01-23",
24 "2024-01-24",
25 "2024-01-25",
26 "2024-01-26",
27 ];
28
29 let open_prices = vec![
30 100.0, 102.5, 101.0, 103.5, 105.0, 104.5, 106.0, 105.5, 107.0, 108.5, 108.0, 110.0, 109.5,
31 111.0, 112.5, 112.0, 113.5, 113.0, 114.5, 115.0,
32 ];
33
34 let high_prices = vec![
35 103.0, 104.0, 103.5, 106.0, 107.5, 107.0, 108.5, 108.0, 109.5, 111.0, 110.5, 112.5, 112.0,
36 113.5, 115.0, 114.5, 116.0, 115.5, 117.0, 117.5,
37 ];
38
39 let low_prices = vec![
40 99.0, 101.5, 100.0, 102.5, 104.0, 103.5, 105.0, 104.5, 106.0, 107.5, 107.0, 109.0, 108.5,
41 110.0, 111.5, 111.0, 112.5, 112.0, 113.5, 114.0,
42 ];
43
44 let close_prices = vec![
45 102.5, 101.0, 103.5, 105.0, 104.5, 106.0, 105.5, 107.0, 108.5, 108.0, 110.0, 109.5, 111.0,
46 112.5, 112.0, 113.5, 113.0, 114.5, 115.0, 116.5,
47 ];
48
49 let stock_data = df! {
50 "date" => dates,
51 "open" => open_prices,
52 "high" => high_prices,
53 "low" => low_prices,
54 "close" => close_prices,
55 }
56 .unwrap();
57
58 OhlcPlot::builder()
59 .data(&stock_data)
60 .dates("date")
61 .open("open")
62 .high("high")
63 .low("low")
64 .close("close")
65 .plot_title("Stock Price")
66 .y_title("Price ($)")
67 .y_axis(&Axis::new().show_axis(true))
68 .build()
69 .plot();
70}Trait Implementations§
Auto Trait Implementations§
impl Freeze for OhlcPlot
impl !RefUnwindSafe for OhlcPlot
impl !Send for OhlcPlot
impl !Sync for OhlcPlot
impl Unpin for OhlcPlot
impl !UnwindSafe for OhlcPlot
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