use velociplot::prelude::*;
fn main() -> Result<()> {
println!("🦖 velociplot - Axis label alignment example");
let data = Series::from_function(0.0, 10.0, 50, |x| x * x * 0.1);
let plot = LinePlot::new(data)
.color(Color::from_hex("#3498db").unwrap())
.line_width(2.5)
.label("Quadratic");
let bounds = plot.bounds().unwrap().with_padding(0.1);
let mut canvas = SkiaCanvas::new(800, 600, bounds)?;
canvas.fill_background(&Color::WHITE.to_rgba())?;
let x_axis = Axis::new(AxisPosition::Bottom)
.label("X Axis (Centered)")
.label_alignment(LabelAlignment::Center)
.tick_count(6)
.show_grid(true);
let y_axis = Axis::new(AxisPosition::Left)
.label("Y Axis Value")
.label_alignment(LabelAlignment::Center)
.tick_count(6)
.show_grid(true);
x_axis.draw(&mut canvas)?;
y_axis.draw(&mut canvas)?;
plot.draw(&mut canvas)?;
if let Some(entry) = plot.legend_entry() {
let legend = Legend::new()
.add_entry(entry)
.position(LegendPosition::UpperRight);
legend.draw(&mut canvas)?;
}
canvas.save_png("examples/images/axis_labels.png")?;
println!("✓ Plot saved to examples/images/axis_labels.png");
println!(" X-axis label: horizontal, centered at bottom");
println!(" Y-axis label: vertical (rotated 90°), centered on left");
println!(" Labels are now inside the canvas bounds");
Ok(())
}