What problem does this feature solve?
Since v5, the interval option of time axes is no long valid because the span of each two ticks are not always the same (e.g., Feburary has 28/29 days while March has 31 days). But it's a common requirement to set the interval level (or the minimium interval level) to be yearly/monthly/dayly/... and it can hardly be done with the current API.
What does the proposed API look like?
I'd suggest we support interval, minInterval, and maxInterval in the type of TimeUnit. If the developer want to set the interval to be 4 days, '4 days' or '4 day' is also valid.
So, valid examples of intervals include: 'year', 'quarter', '4 days', '4 day', '30 minutes', and etc.
#17044 is trying to provide a number typed interval but this cannot solve the problem of each month having different days. Using the interval of 1000 * 3600 * 24 * 30 is not accurate and logically not correct. Similar for the leap year problem.
For example, to display use ticks by month:
xAxis: {
type: 'time',
interval: 'month',
axisLabel: { // optional
showMinLabel: true,
formatter: {
year: '{yyyy}',
month: '{MMM}',
day: '{yyyy} {MMM}'' // hack for the first day
}
}
}
The ticks will be at the first date of each month (excluding the first one because it's displaying only because showMinLabel: true):
|_____________|__________________________|__________________________|__ ...
2019 Dec 2020 Feb March
minInterval and maxInterval works similarly.
Note that if interval is set to be like '4 days', the first day of each month may not be on ticks any more:
|________|________|________|________ ...
6/21 6/25 6/29 7/3
In this case, 7/1 is not included in the ticks. #16335
Related issues
What problem does this feature solve?
Since v5, the
intervaloption of time axes is no long valid because the span of each two ticks are not always the same (e.g., Feburary has 28/29 days while March has 31 days). But it's a common requirement to set the interval level (or the minimium interval level) to be yearly/monthly/dayly/... and it can hardly be done with the current API.What does the proposed API look like?
I'd suggest we support
interval,minInterval, andmaxIntervalin the type ofTimeUnit. If the developer want to set the interval to be 4 days,'4 days'or'4 day'is also valid.So, valid examples of
intervals include:'year','quarter','4 days','4 day','30 minutes', and etc.For example, to display use ticks by month:
The ticks will be at the first date of each month (excluding the first one because it's displaying only because
showMinLabel: true):minIntervalandmaxIntervalworks similarly.Note that if
intervalis set to be like'4 days', the first day of each month may not be on ticks any more:In this case,
7/1is not included in the ticks. #16335Related issues