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 theDataFrame
containing 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 optionalf64
specifying the width of the open/close ticks (0-1 range).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.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.
§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