///|
/// Update x units from explicit naive/aware dates without adding an artist.
pub fn Axes::update_x_date_units(
self : Axes,
values : Array[@date.RRuleDateTime],
) -> Bool raise @core.DataError {
self.state.val.x_axis.update_date_units(values)
}
///|
pub fn Axes::update_y_date_units(
self : Axes,
values : Array[@date.RRuleDateTime],
) -> Bool raise @core.DataError {
self.state.val.y_axis.update_date_units(values)
}
///|
pub fn Axes::update_x_category_units(
self : Axes,
values : Array[String],
) -> Bool raise @core.DataError {
self.state.val.x_axis.update_category_units(values)
}
///|
pub fn Axes::update_y_category_units(
self : Axes,
values : Array[String],
) -> Bool raise @core.DataError {
self.state.val.y_axis.update_category_units(values)
}
///|
/// Change units with original shared-axis mutation and callback ordering.
pub fn Axes::set_x_units(
self : Axes,
unit : @axis.AxisUnitTag?,
) -> Unit raise @core.DataError {
self.state.val.x_axis.set_unit_tag(unit)
}
///|
pub fn Axes::set_y_units(
self : Axes,
unit : @axis.AxisUnitTag?,
) -> Unit raise @core.DataError {
self.state.val.y_axis.set_unit_tag(unit)
}
///|
pub fn Axes::x_units(self : Axes) -> @axis.AxisUnitTag? {
self.state.val.x_axis.unit_tag()
}
///|
pub fn Axes::y_units(self : Axes) -> @axis.AxisUnitTag? {
self.state.val.y_axis.unit_tag()
}
///|
/// Plot dates while retaining the distinction between naive and aware inputs.
/// Empty ordinary arrays do not choose a registry converter.
pub fn Axes::plot_date_units(
self : Axes,
dates : Array[@date.RRuleDateTime],
values : Array[Double],
color~ : String = "",
label~ : String = "",
) -> Unit raise @core.DataError {
if dates.length() != values.length() {
raise @core.DataError::LengthMismatch(
expected=dates.length(),
actual=values.length(),
)
}
if !self.state.val.x_axis.have_units() {
ignore(self.update_x_date_units(dates))
}
let ordinals = self.state.val.x_axis.convert_date_units(dates)
let points = @core.series(ordinals, values).points()
self.attach_line_with_originals(
points,
LineData::Date(dates),
LineData::Numeric(values),
color~,
label~,
)
}
///|
pub fn Figure::plot_date_units(
self : Figure,
dates : Array[@date.RRuleDateTime],
values : Array[Double],
color~ : String = "",
label~ : String = "",
) -> Unit raise @core.DataError {
self.axes().plot_date_units(dates, values, color~, label~)
}