pub struct SlopeIcon { /* private fields */ }
Expand description
Creates an icon to indicate the slope of lines
§Notes
When using log scales, plot.set_log_x(true)
or plot.set_log_y(true)
must be called before adding the icon.
§Example
use plotpy::{linspace, Curve, Plot, SlopeIcon, StrError};
fn main() -> Result<(), StrError> {
// models
let slope = 2.0;
let (xi, xf, yi) = (0.0, 10.0, 0.0);
let f = |x: f64| yi + slope * (x - xi);
let g = |x: f64| f(xf) - slope * (x - xi);
// curves
let mut curve1 = Curve::new();
let mut curve2 = Curve::new();
let x = linspace(xi, xf, 3);
let y1: Vec<_> = x.iter().map(|x| f(*x)).collect();
let y2: Vec<_> = x.iter().map(|x| g(*x)).collect();
curve1.set_marker_style("o").draw(&x, &y1);
curve2.set_marker_style("*").draw(&x, &y2);
// icons
let mut icon1 = SlopeIcon::new();
let mut icon2 = SlopeIcon::new();
let mut icon3 = SlopeIcon::new();
let mut icon4 = SlopeIcon::new();
icon2.set_above(true);
icon4.set_above(true);
icon1.draw(slope, 2.5, f(2.5));
icon2.draw(slope, 7.5, f(7.5));
icon3.draw(-slope, 2.5, g(2.5));
icon4.draw(-slope, 7.5, g(7.5));
// plot
let mut plot = Plot::new();
plot.set_horizontal_gap(0.2);
plot.set_subplot(2, 2, 1)
.add(&curve1)
.add(&curve2)
.add(&icon1)
.add(&icon2)
.add(&icon3)
.add(&icon4)
.grid_and_labels("x", "y");
// save figure
plot.save("/tmp/plotpy/doc_tests/doc_slope_icon.svg")?;
Ok(())
}
See also integration test in the tests directory.
Output from some integration tests:
Implementations§
source§impl SlopeIcon
impl SlopeIcon
sourcepub fn set_edge_color(&mut self, color: &str) -> &mut Self
pub fn set_edge_color(&mut self, color: &str) -> &mut Self
Sets the color of icon lines
sourcepub fn set_face_color(&mut self, color: &str) -> &mut Self
pub fn set_face_color(&mut self, color: &str) -> &mut Self
Sets the color of icon face
sourcepub fn set_line_style(&mut self, style: &str) -> &mut Self
pub fn set_line_style(&mut self, style: &str) -> &mut Self
Sets the style of lines
Options:
- “
-
”,:
“, “--
”, “-.
”, or “None
” - As defined in https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html
sourcepub fn set_line_width(&mut self, width: f64) -> &mut Self
pub fn set_line_width(&mut self, width: f64) -> &mut Self
Sets the width of lines
sourcepub fn set_length(&mut self, value: f64) -> &mut Self
pub fn set_length(&mut self, value: f64) -> &mut Self
Sets the (horizontal) length of the icon in Axes coordinates [0, 1]
sourcepub fn set_offset_v(&mut self, value: f64) -> &mut Self
pub fn set_offset_v(&mut self, value: f64) -> &mut Self
Sets the whole icon’s offset in normalized axes coordinates in points
sourcepub fn set_no_text(&mut self, flag: bool) -> &mut Self
pub fn set_no_text(&mut self, flag: bool) -> &mut Self
Sets option to skip drawing text
sourcepub fn set_fontsize(&mut self, fontsize: f64) -> &mut Self
pub fn set_fontsize(&mut self, fontsize: f64) -> &mut Self
Sets the font size
sourcepub fn set_precision(&mut self, value: usize) -> &mut Self
pub fn set_precision(&mut self, value: usize) -> &mut Self
Sets the the precision of slope number in label
sourcepub fn set_text_h(&mut self, one: &str) -> &mut Self
pub fn set_text_h(&mut self, one: &str) -> &mut Self
Sets text of horizontal value (== 1)
sourcepub fn set_text_v(&mut self, slope: &str) -> &mut Self
pub fn set_text_v(&mut self, slope: &str) -> &mut Self
Sets text of vertical value (slope)
sourcepub fn set_text_color(&mut self, color: &str) -> &mut Self
pub fn set_text_color(&mut self, color: &str) -> &mut Self
Sets the color of text
sourcepub fn set_text_offset_h(&mut self, value: f64) -> &mut Self
pub fn set_text_offset_h(&mut self, value: f64) -> &mut Self
Sets the horizontal offset for the text in normalized axes coordinates in points
sourcepub fn set_text_offset_v(&mut self, value: f64) -> &mut Self
pub fn set_text_offset_v(&mut self, value: f64) -> &mut Self
Sets the vertical offset for the text in normalized axes coordinates in points