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}