scale_x_datetime ¶
scale_x_datetime(
name: str | None = None,
*,
breaks: Breaks | None = None,
break_width: str | None = None,
labels: Labels | None = None,
lablim: int | None = None,
limits: Limits | None = None,
expand: Sequence[Number] | None = None,
na_value: Color | Number | None = None,
format: str | None = None,
position: Position | None = None,
) -> FeatureSpec
Date-time position scale x.
Values are date-times (datetime, date, numpy and polars date-time
columns) or milliseconds since the Unix epoch. Breaks fall on calendar
boundaries (whole hours, days, Mondays, months, years) and are labelled by
their spacing ("%b %e", "%Y", ...). Axes of date-time columns get
this scale without asking for it. Labels are in UTC.
Parameters:
-
name(str, default:None) –Axis title (
labs(x=...)takes precedence). -
breaks(list, default:None) –Fixed break positions (date-times or epoch milliseconds).
-
break_width(str, default:None) –Fixed distance between breaks, as
"<count> <unit>"with a unit ofms,sec,min,hour,day,week,monthoryear(plurals allowed), e.g."2 weeks". -
labels(list of str or dict, default:None) –One label per break (a dict maps breaks to labels). Ignored without
breaks, as in lets-plot. -
format(str, default:None) –Date-time label pattern (
"%d.%m.%y","%b %Y","{%H:%M}").labelstake precedence. -
limits(list, default:None) –[low, high]as date-times;Noneleaves a side free. -
expand(list, default:None) –[multiplicative]or[multiplicative, additive]expansion; the additive part is in milliseconds. -
lablim(int | None, default:None) –As in lets-plot; not drawn yet (ggrust warns).
-
na_value(int | None, default:None) –As in lets-plot; not drawn yet (ggrust warns).
-
position(int | None, default:None) –As in lets-plot; not drawn yet (ggrust warns).
Returns:
-
FeatureSpec–Scale specification.
Examples:
>>> import datetime
>>> from ggrust import *
>>> days = [datetime.date(2024, 1, 1) + datetime.timedelta(days=d) for d in range(60)]
>>> data = {"day": days, "visitors": [100 + (d % 7) * 12 for d in range(60)]}
>>> plot = (
... ggplot(data, aes("day", "visitors"))
... + geom_line()
... + scale_x_datetime(break_width="2 weeks", format="%d %b")
... )