1
#![deny(missing_docs)]
2

3
//! Configure a grid on a plot.
4
//!
5
//! Grids allow for easier estimating of data values. This module allows the configuration of grids
6
//! on plots.
7
//!
8
//! Grids are created by creating a `Grid` definition, and adding it to a plot:
9
//!
10
//! The grid lines for `plotlib` are rendered
11
//! _underneath_ the data so as to not detract from the data.
12
//!
13
//! # Examples
14
//!
15
//! ```rust
16
//! # use plotlib::view::ContinuousView;
17
//! use plotlib::grid::Grid;
18
//! # use plotlib::style::LineStyle;
19
//! # use plotlib::view::View;
20
//!
21
//! # let l1 = plotlib::repr::Plot::new(vec![(0., 1.), (2., 1.5), (3., 1.2), (4., 1.1)])
22
//! #    .line_style(LineStyle::new().colour("burlywood"));
23
//! // let l1 = Plot::new() ...
24
//! let mut v = ContinuousView::new().add(l1);
25
//!
26
//! // 3 vertical lines and 8 horizontal lines
27
//! v.add_grid(Grid::new(3, 8));
28
//!
29
//! // Render plot
30
//! ```
31

32
// Internal type representing the logic of when do we render only horizontal lines, and when do we
33
// render a full grid
34
pub(crate) enum GridType<'a> {
35
    HorizontalOnly(&'a Grid),
36
    Both(&'a Grid),
37
}
38

39
/// Configuration for the grid on a plot
40
///
41
/// Supports changing the number of grid lines for the x and y dimensions.
42
/// **Note:** for categorical plots, only horizontal lines will be shown.
43
pub struct Grid {
44
    /// Number of vertical grid lines (defaults to 3)
45
    pub nx: u32,
46
    /// Number of horizontal grid lines (defaults to 3)
47
    pub ny: u32,
48
    /// Color of the grid lines (defaults to "darkgrey")
49
    pub color: String,
50
}
51

52
impl Default for Grid {
53 0
    fn default() -> Self {
54
        Grid::new(3, 3)
55
    }
56
}
57

58
impl Grid {
59
    /// Create a new grid with `nx` vertical and `ny` horizontal grid lines
60
    ///
61
    /// The default colour is "darkgrey".
62 0
    pub fn new(nx: u32, ny: u32) -> Grid {
63
        Grid {
64
            nx,
65
            ny,
66 0
            color: "darkgrey".to_owned(),
67
        }
68
    }
69
}

Read our documentation on viewing source code .

Loading