Overview
DateTimeAxis provides calendar-aware tick generation for time series data. It automatically aligns ticks to calendar boundaries (midnight, month start, etc.) and formats them using strftime patterns.
Usage
Constructors
DateTimeAxis::years
Creates a year-based axis.
DateTimeAxis::months
Creates a month-based axis.
DateTimeAxis::weeks
Creates a week-based axis (ticks on Mondays).
DateTimeAxis::days
Creates a day-based axis (ticks at midnight).
DateTimeAxis::hours
Creates an hour-based axis.
DateTimeAxis::minutes
Creates a minute-based axis.
DateTimeAxis::auto
Automatically selects unit and format based on data range.
Minimum timestamp (Unix seconds)
Maximum timestamp (Unix seconds)
- < 2 min: seconds
- < 2 hours: minutes
- < 3 days: hours
- < 90 days: days
- < 3 years: months
-
= 3 years: years
Methods
with_step
Sets the step interval for tick generation.
generate_ticks
Generates tick positions aligned to calendar boundaries.
Minimum timestamp
Maximum timestamp
Vec<f64> - Tick positions as Unix timestamps
format_tick
Formats a timestamp using the configured strftime format.
Unix timestamp to format
String - Formatted date/time string
Helper Functions
ymd
Converts year-month-day to Unix timestamp.
ymd_hms
Converts year-month-day-hour-minute-second to Unix timestamp.
Complete Example
Format Specifiers
Common strftime format codes:| Code | Meaning | Example |
|---|---|---|
%Y | 4-digit year | 2024 |
%y | 2-digit year | 24 |
%m | Month (01-12) | 03 |
%b | Month abbr | Mar |
%B | Month full | March |
%d | Day (01-31) | 15 |
%H | Hour (00-23) | 14 |
%M | Minute (00-59) | 30 |
%S | Second (00-59) | 45 |
Source
src/render/datetime.rs