use charton::prelude::*;
use polars::prelude::*;
use std::error::Error;
#[test]
fn test_transform_calculate_1() -> Result<(), Box<dyn Error>> {
let df = df! [
"type" => ["a", "b", "c", "d"],
"value" => [5.1, 5.3, 5.7, 6.5],
"value_std" => [0.2, 0.23, 0.14, 0.25]
]?;
let errorbar_chart = Chart::build(&df)?
.transform_calculate(
(col("value") - col("value_std")).alias("value_min"), (col("value") + col("value_std")).alias("value_max"), )?
.mark_errorbar()?
.encode((x("type"), y("value_min"), y2("value_max")))?
.configure_errorbar(
|e| {
e.with_color("blue")
.with_stroke_width(2.0)
.with_cap_length(5.0)
.with_center(true)
}, );
errorbar_chart
.with_size(500, 400)
.with_title("Error Bar Chart with Mean and Std Dev")
.coord_flip()
.save("./tests/transform_calculate_1.svg")?;
Ok(())
}