flow_plots/options/
density.rs

1use crate::colormap::ColorMaps;
2use crate::options::{AxisOptions, BasePlotOptions, PlotOptions};
3use derive_builder::Builder;
4
5/// Options for density plots
6///
7/// Configuration for creating density plots, including base layout options,
8/// axis configurations, and color map selection.
9///
10/// # Example
11///
12/// ```rust,no_run
13/// use flow_plots::options::DensityPlotOptions;
14/// use flow_plots::colormap::ColorMaps;
15///
16/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
17/// let options = DensityPlotOptions::new()
18///     .width(800)
19///     .height(600)
20///     .colormap(ColorMaps::Viridis)
21///     .build()?;
22/// # Ok(())
23/// # }
24/// ```
25///
26/// @deprecated The old PlotOptions struct has been removed. Use DensityPlotOptions with builder pattern instead.
27#[derive(Builder, Clone, Debug)]
28#[builder(setter(into, strip_option), default)]
29pub struct DensityPlotOptions {
30    /// Base plot options (layout, dimensions, etc.)
31    #[builder(default)]
32    pub base: BasePlotOptions,
33
34    /// X-axis configuration
35    #[builder(default)]
36    pub x_axis: AxisOptions,
37
38    /// Y-axis configuration
39    #[builder(default)]
40    pub y_axis: AxisOptions,
41
42    /// Color map to use for density visualization
43    #[builder(default = "ColorMaps::Viridis")]
44    pub colormap: ColorMaps,
45}
46
47impl Default for DensityPlotOptions {
48    fn default() -> Self {
49        Self {
50            base: BasePlotOptions::default(),
51            x_axis: AxisOptions::default(),
52            y_axis: AxisOptions::default(),
53            colormap: ColorMaps::Viridis,
54        }
55    }
56}
57
58impl PlotOptions for DensityPlotOptions {
59    fn base(&self) -> &BasePlotOptions {
60        &self.base
61    }
62}
63
64impl DensityPlotOptions {
65    /// Create a new builder for DensityPlotOptions
66    pub fn new() -> DensityPlotOptionsBuilder {
67        DensityPlotOptionsBuilder::default()
68    }
69}