// Example: Multi-series line chart with point markers and custom colors.
// Run: moon run examples/line_chart
///|
fn main {
let seriesA = [
@moonchart.DataPoint::new(0.0, 100.0),
@moonchart.DataPoint::new(1.0, 85.0),
@moonchart.DataPoint::new(2.0, 72.0),
@moonchart.DataPoint::new(3.0, 58.0),
@moonchart.DataPoint::new(4.0, 40.0),
@moonchart.DataPoint::new(5.0, 25.0),
]
let seriesB = [
@moonchart.DataPoint::new(0.0, 95.0),
@moonchart.DataPoint::new(1.0, 80.0),
@moonchart.DataPoint::new(2.0, 65.0),
@moonchart.DataPoint::new(3.0, 50.0),
@moonchart.DataPoint::new(4.0, 35.0),
@moonchart.DataPoint::new(5.0, 18.0),
]
let svg = @moonchart.Chart::new()
.title("Drug Concentration Over Time")
.xTicks([0.0, 1.0, 2.0, 3.0, 4.0, 5.0], ["0h", "1h", "2h", "3h", "4h", "5h"])
.xLabel("Time")
.yLabel("Concentration (ng/mL)")
.yRange(0.0, 110.0)
.series(
@moonchart.Series::line("Drug A", seriesA).withColor(
@moonchart.Color::rgb(0, 122, 184),
),
)
.series(
@moonchart.Series::line("Drug B", seriesB).withColor(
@moonchart.Color::rgb(212, 57, 57),
),
)
.save("line_chart.svg")
match svg {
Ok(s) => println(s)
Err(e) => println("Error: \{e}")
}
}