pub struct ColorBar { /* private fields */ }Expand description
A structure representing a color bar component for visualizations.
§Example
use polars::prelude::*;
use plotlars::{ColorBar, HeatMap, Orientation, Palette, Plot, Text, ValueExponent};
let dataset = LazyCsvReader::new(PlPath::new("data/heatmap.csv"))
.finish()
.unwrap()
.collect()
.unwrap();
HeatMap::builder()
.data(&dataset)
.x("x")
.y("y")
.z("z")
.color_bar(
&ColorBar::new()
.orientation(Orientation::Horizontal)
.length(290)
.value_exponent(ValueExponent::None)
.separate_thousands(true)
.tick_length(5)
.tick_step(2500.0)
.tick_angle(90.0)
.y(-0.6)
)
.color_scale(Palette::Viridis)
.build()
.plot();
Implementations§
Source§impl ColorBar
impl ColorBar
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new ColorBar instance with default settings.
Examples found in repository?
5fn main() {
6 let dataset = LazyCsvReader::new(PlPath::new("data/heatmap.csv"))
7 .finish()
8 .unwrap()
9 .collect()
10 .unwrap();
11
12 HeatMap::builder()
13 .data(&dataset)
14 .x("x")
15 .y("y")
16 .z("z")
17 .color_bar(
18 &ColorBar::new()
19 .length(290)
20 .value_exponent(ValueExponent::None)
21 .separate_thousands(true)
22 .tick_length(5)
23 .tick_step(2500.0),
24 )
25 .plot_title(Text::from("Heat Map").font("Arial").size(18))
26 .color_scale(Palette::Viridis)
27 .build()
28 .plot();
29}More examples
69fn example_with_intensity() {
70 let mut x = Vec::new();
71 let mut y = Vec::new();
72 let mut z = Vec::new();
73 let mut intensity = Vec::new();
74
75 for i in 0..10 {
76 for j in 0..10 {
77 let xi = i as f64 * 0.1;
78 let yj = j as f64 * 0.1;
79 x.push(xi);
80 y.push(yj);
81 z.push(
82 (xi * 2.0 * std::f64::consts::PI).sin()
83 * (yj * 2.0 * std::f64::consts::PI).cos()
84 * 0.3,
85 );
86 intensity.push(xi * yj);
87 }
88 }
89
90 let dataset = DataFrame::new(vec![
91 Column::new("x".into(), x),
92 Column::new("y".into(), y),
93 Column::new("z".into(), z),
94 Column::new("intensity".into(), intensity),
95 ])
96 .unwrap();
97
98 Mesh3D::builder()
99 .data(&dataset)
100 .x("x")
101 .y("y")
102 .z("z")
103 .intensity("intensity")
104 .intensity_mode(IntensityMode::Vertex)
105 .color_scale(Palette::Viridis)
106 .reverse_scale(false)
107 .show_scale(true)
108 .color_bar(
109 &ColorBar::new()
110 .x(0.85) // Move color bar very close to the plot
111 .title("Intensity"),
112 )
113 .opacity(0.95)
114 .plot_title(
115 Text::from("Mesh3D with Intensity Coloring")
116 .font("Arial")
117 .size(20),
118 )
119 .build()
120 .plot();
121}8fn main() {
9 let n: usize = 100;
10 let (x_base, _): (Vec<f64>, Option<usize>) =
11 Array::linspace(-10., 10., n).into_raw_vec_and_offset();
12 let (y_base, _): (Vec<f64>, Option<usize>) =
13 Array::linspace(-10., 10., n).into_raw_vec_and_offset();
14
15 let x = x_base
16 .iter()
17 .flat_map(|&xi| iter::repeat_n(xi, n))
18 .collect::<Vec<_>>();
19
20 let y = y_base
21 .iter()
22 .cycle()
23 .take(n * n)
24 .cloned()
25 .collect::<Vec<_>>();
26
27 let z = x_base
28 .iter()
29 .flat_map(|i| {
30 y_base
31 .iter()
32 .map(|j| 1.0 / (j * j + 5.0) * j.sin() + 1.0 / (i * i + 5.0) * i.cos())
33 .collect::<Vec<_>>()
34 })
35 .collect::<Vec<_>>();
36
37 let dataset = df![
38 "x" => &x,
39 "y" => &y,
40 "z" => &z,
41 ]
42 .unwrap();
43
44 SurfacePlot::builder()
45 .data(&dataset)
46 .x("x")
47 .y("y")
48 .z("z")
49 .plot_title(Text::from("Surface Plot").font("Arial").size(18))
50 .color_bar(&ColorBar::new().border_width(1))
51 .color_scale(Palette::Cividis)
52 .reverse_scale(true)
53 .lighting(
54 &Lighting::new()
55 .position(1, 0, 0)
56 .ambient(1.0)
57 .diffuse(1.0)
58 .fresnel(1.0)
59 .roughness(1.0)
60 .specular(1.0),
61 )
62 .opacity(0.5)
63 .build()
64 .plot();
65}Sourcepub fn background_color(self, color: Rgb) -> Self
pub fn background_color(self, color: Rgb) -> Self
Sets the background color of the color bar.
§Arguments
color- AnRgbvalue representing the desired background color.
Sourcepub fn border_color(self, color: Rgb) -> Self
pub fn border_color(self, color: Rgb) -> Self
Sets the border color of the color bar.
§Arguments
color- AnRgbvalue representing the desired border color.
Sourcepub fn border_width(self, width: usize) -> Self
pub fn border_width(self, width: usize) -> Self
Sets the width of the color bar’s border.
§Arguments
width- Ausizevalue specifying the border width in pixels.
Examples found in repository?
8fn main() {
9 let n: usize = 100;
10 let (x_base, _): (Vec<f64>, Option<usize>) =
11 Array::linspace(-10., 10., n).into_raw_vec_and_offset();
12 let (y_base, _): (Vec<f64>, Option<usize>) =
13 Array::linspace(-10., 10., n).into_raw_vec_and_offset();
14
15 let x = x_base
16 .iter()
17 .flat_map(|&xi| iter::repeat_n(xi, n))
18 .collect::<Vec<_>>();
19
20 let y = y_base
21 .iter()
22 .cycle()
23 .take(n * n)
24 .cloned()
25 .collect::<Vec<_>>();
26
27 let z = x_base
28 .iter()
29 .flat_map(|i| {
30 y_base
31 .iter()
32 .map(|j| 1.0 / (j * j + 5.0) * j.sin() + 1.0 / (i * i + 5.0) * i.cos())
33 .collect::<Vec<_>>()
34 })
35 .collect::<Vec<_>>();
36
37 let dataset = df![
38 "x" => &x,
39 "y" => &y,
40 "z" => &z,
41 ]
42 .unwrap();
43
44 SurfacePlot::builder()
45 .data(&dataset)
46 .x("x")
47 .y("y")
48 .z("z")
49 .plot_title(Text::from("Surface Plot").font("Arial").size(18))
50 .color_bar(&ColorBar::new().border_width(1))
51 .color_scale(Palette::Cividis)
52 .reverse_scale(true)
53 .lighting(
54 &Lighting::new()
55 .position(1, 0, 0)
56 .ambient(1.0)
57 .diffuse(1.0)
58 .fresnel(1.0)
59 .roughness(1.0)
60 .specular(1.0),
61 )
62 .opacity(0.5)
63 .build()
64 .plot();
65}Sourcepub fn tick_step(self, step: f64) -> Self
pub fn tick_step(self, step: f64) -> Self
Sets the step size between ticks on the color bar.
§Arguments
step- Af64value representing the step size between ticks.
Examples found in repository?
5fn main() {
6 let dataset = LazyCsvReader::new(PlPath::new("data/heatmap.csv"))
7 .finish()
8 .unwrap()
9 .collect()
10 .unwrap();
11
12 HeatMap::builder()
13 .data(&dataset)
14 .x("x")
15 .y("y")
16 .z("z")
17 .color_bar(
18 &ColorBar::new()
19 .length(290)
20 .value_exponent(ValueExponent::None)
21 .separate_thousands(true)
22 .tick_length(5)
23 .tick_step(2500.0),
24 )
25 .plot_title(Text::from("Heat Map").font("Arial").size(18))
26 .color_scale(Palette::Viridis)
27 .build()
28 .plot();
29}Sourcepub fn value_exponent(self, exponent: ValueExponent) -> Self
pub fn value_exponent(self, exponent: ValueExponent) -> Self
Sets the exponent format for values on the axis.
§Argument
exponent- AValueExponentenum value representing the exponent format.
Examples found in repository?
5fn main() {
6 let dataset = LazyCsvReader::new(PlPath::new("data/heatmap.csv"))
7 .finish()
8 .unwrap()
9 .collect()
10 .unwrap();
11
12 HeatMap::builder()
13 .data(&dataset)
14 .x("x")
15 .y("y")
16 .z("z")
17 .color_bar(
18 &ColorBar::new()
19 .length(290)
20 .value_exponent(ValueExponent::None)
21 .separate_thousands(true)
22 .tick_length(5)
23 .tick_step(2500.0),
24 )
25 .plot_title(Text::from("Heat Map").font("Arial").size(18))
26 .color_scale(Palette::Viridis)
27 .build()
28 .plot();
29}Sourcepub fn length(self, length: usize) -> Self
pub fn length(self, length: usize) -> Self
Sets the length of the color bar.
§Arguments
length- Ausizevalue specifying the length in pixels.
Examples found in repository?
5fn main() {
6 let dataset = LazyCsvReader::new(PlPath::new("data/heatmap.csv"))
7 .finish()
8 .unwrap()
9 .collect()
10 .unwrap();
11
12 HeatMap::builder()
13 .data(&dataset)
14 .x("x")
15 .y("y")
16 .z("z")
17 .color_bar(
18 &ColorBar::new()
19 .length(290)
20 .value_exponent(ValueExponent::None)
21 .separate_thousands(true)
22 .tick_length(5)
23 .tick_step(2500.0),
24 )
25 .plot_title(Text::from("Heat Map").font("Arial").size(18))
26 .color_scale(Palette::Viridis)
27 .build()
28 .plot();
29}Sourcepub fn n_ticks(self, n: usize) -> Self
pub fn n_ticks(self, n: usize) -> Self
Sets the number of ticks on the color bar.
§Arguments
n- Ausizevalue representing the number of ticks.
Sourcepub fn orientation(self, orientation: Orientation) -> Self
pub fn orientation(self, orientation: Orientation) -> Self
Sets the orientation of the color bar.
§Arguments
orientation- AnOrientationenum value specifying the orientation (e.g., horizontal or vertical).
Sourcepub fn outline_color(self, color: Rgb) -> Self
pub fn outline_color(self, color: Rgb) -> Self
Sets the outline color of the color bar.
§Arguments
color- AnRgbvalue representing the desired outline color.
Sourcepub fn outline_width(self, width: usize) -> Self
pub fn outline_width(self, width: usize) -> Self
Sets the outline width of the color bar.
§Arguments
width- Ausizevalue specifying the outline width in pixels.
Sourcepub fn separate_thousands(self, separate_thousands: bool) -> Self
pub fn separate_thousands(self, separate_thousands: bool) -> Self
Specifies whether to separate thousands in tick labels.
§Arguments
separate_thousands- Aboolindicating whether to separate thousands.
Examples found in repository?
5fn main() {
6 let dataset = LazyCsvReader::new(PlPath::new("data/heatmap.csv"))
7 .finish()
8 .unwrap()
9 .collect()
10 .unwrap();
11
12 HeatMap::builder()
13 .data(&dataset)
14 .x("x")
15 .y("y")
16 .z("z")
17 .color_bar(
18 &ColorBar::new()
19 .length(290)
20 .value_exponent(ValueExponent::None)
21 .separate_thousands(true)
22 .tick_length(5)
23 .tick_step(2500.0),
24 )
25 .plot_title(Text::from("Heat Map").font("Arial").size(18))
26 .color_scale(Palette::Viridis)
27 .build()
28 .plot();
29}Sourcepub fn tick_angle(self, angle: f64) -> Self
pub fn tick_angle(self, angle: f64) -> Self
Sets the angle of the tick labels on the color bar.
§Arguments
angle- Af64value representing the angle in degrees.
Sourcepub fn tick_color(self, color: Rgb) -> Self
pub fn tick_color(self, color: Rgb) -> Self
Sets the color of the ticks on the color bar.
§Arguments
color- AnRgbvalue representing the tick color.
Sourcepub fn tick_font(self, font: impl Into<String>) -> Self
pub fn tick_font(self, font: impl Into<String>) -> Self
Sets the font of the tick labels on the color bar.
§Arguments
font- A string representing the font family.
Sourcepub fn tick_length(self, length: usize) -> Self
pub fn tick_length(self, length: usize) -> Self
Sets the length of the axis ticks.
§Argument
length- Ausizevalue representing the length of the ticks.
Examples found in repository?
5fn main() {
6 let dataset = LazyCsvReader::new(PlPath::new("data/heatmap.csv"))
7 .finish()
8 .unwrap()
9 .collect()
10 .unwrap();
11
12 HeatMap::builder()
13 .data(&dataset)
14 .x("x")
15 .y("y")
16 .z("z")
17 .color_bar(
18 &ColorBar::new()
19 .length(290)
20 .value_exponent(ValueExponent::None)
21 .separate_thousands(true)
22 .tick_length(5)
23 .tick_step(2500.0),
24 )
25 .plot_title(Text::from("Heat Map").font("Arial").size(18))
26 .color_scale(Palette::Viridis)
27 .build()
28 .plot();
29}Sourcepub fn tick_labels(self, labels: Vec<impl Into<String>>) -> Self
pub fn tick_labels(self, labels: Vec<impl Into<String>>) -> Self
Sets the tick labels for the axis.
§Argument
labels- A vector of values that can be converted intoString, representing the tick labels.
Sourcepub fn tick_values(self, values: Vec<f64>) -> Self
pub fn tick_values(self, values: Vec<f64>) -> Self
Sets the tick values for the axis.
§Argument
values- A vector off64values representing the tick values.
Sourcepub fn tick_width(self, width: usize) -> Self
pub fn tick_width(self, width: usize) -> Self
Sets the width of the ticks on the color bar.
§Arguments
width- Ausizevalue specifying the tick width in pixels.
Sourcepub fn tick_direction(self, direction: TickDirection) -> Self
pub fn tick_direction(self, direction: TickDirection) -> Self
Sets the direction of the axis ticks.
§Argument
direction- ATickDirectionenum value representing the direction of the ticks.
Sourcepub fn title<T: Into<Text>>(self, title: T) -> Self
pub fn title<T: Into<Text>>(self, title: T) -> Self
Sets the title of the color bar.
§Arguments
title- A value that can be converted intoText, representing the title.
Examples found in repository?
69fn example_with_intensity() {
70 let mut x = Vec::new();
71 let mut y = Vec::new();
72 let mut z = Vec::new();
73 let mut intensity = Vec::new();
74
75 for i in 0..10 {
76 for j in 0..10 {
77 let xi = i as f64 * 0.1;
78 let yj = j as f64 * 0.1;
79 x.push(xi);
80 y.push(yj);
81 z.push(
82 (xi * 2.0 * std::f64::consts::PI).sin()
83 * (yj * 2.0 * std::f64::consts::PI).cos()
84 * 0.3,
85 );
86 intensity.push(xi * yj);
87 }
88 }
89
90 let dataset = DataFrame::new(vec![
91 Column::new("x".into(), x),
92 Column::new("y".into(), y),
93 Column::new("z".into(), z),
94 Column::new("intensity".into(), intensity),
95 ])
96 .unwrap();
97
98 Mesh3D::builder()
99 .data(&dataset)
100 .x("x")
101 .y("y")
102 .z("z")
103 .intensity("intensity")
104 .intensity_mode(IntensityMode::Vertex)
105 .color_scale(Palette::Viridis)
106 .reverse_scale(false)
107 .show_scale(true)
108 .color_bar(
109 &ColorBar::new()
110 .x(0.85) // Move color bar very close to the plot
111 .title("Intensity"),
112 )
113 .opacity(0.95)
114 .plot_title(
115 Text::from("Mesh3D with Intensity Coloring")
116 .font("Arial")
117 .size(20),
118 )
119 .build()
120 .plot();
121}Sourcepub fn x(self, x: f64) -> Self
pub fn x(self, x: f64) -> Self
Sets the x-coordinate position of the text.
§Argument
x- Af64value specifying the horizontal position.
Examples found in repository?
69fn example_with_intensity() {
70 let mut x = Vec::new();
71 let mut y = Vec::new();
72 let mut z = Vec::new();
73 let mut intensity = Vec::new();
74
75 for i in 0..10 {
76 for j in 0..10 {
77 let xi = i as f64 * 0.1;
78 let yj = j as f64 * 0.1;
79 x.push(xi);
80 y.push(yj);
81 z.push(
82 (xi * 2.0 * std::f64::consts::PI).sin()
83 * (yj * 2.0 * std::f64::consts::PI).cos()
84 * 0.3,
85 );
86 intensity.push(xi * yj);
87 }
88 }
89
90 let dataset = DataFrame::new(vec![
91 Column::new("x".into(), x),
92 Column::new("y".into(), y),
93 Column::new("z".into(), z),
94 Column::new("intensity".into(), intensity),
95 ])
96 .unwrap();
97
98 Mesh3D::builder()
99 .data(&dataset)
100 .x("x")
101 .y("y")
102 .z("z")
103 .intensity("intensity")
104 .intensity_mode(IntensityMode::Vertex)
105 .color_scale(Palette::Viridis)
106 .reverse_scale(false)
107 .show_scale(true)
108 .color_bar(
109 &ColorBar::new()
110 .x(0.85) // Move color bar very close to the plot
111 .title("Intensity"),
112 )
113 .opacity(0.95)
114 .plot_title(
115 Text::from("Mesh3D with Intensity Coloring")
116 .font("Arial")
117 .size(20),
118 )
119 .build()
120 .plot();
121}Trait Implementations§
Auto Trait Implementations§
impl Freeze for ColorBar
impl RefUnwindSafe for ColorBar
impl Send for ColorBar
impl Sync for ColorBar
impl Unpin for ColorBar
impl UnwindSafe for ColorBar
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<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> ⓘ
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<T> Key for Twhere
T: Clone,
impl<T> Key for Twhere
T: Clone,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().