Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Customize amCharts date aggregation level

I would like to customize the date aggregate(axis labels) for amCharts, but I couldn't find a provision to do this in amCharts docs. Googling the same just pointed me to the dateFormats documentation.

amCharts provides an option for aggregating date by setting parseDates to true and adding dateFormats as shown below. This option aggregates date by doing some calculation by amCharts itself, let's say 25 days for week aggregation(Jan 5), 65 days for month aggregation(Jan) and so on, but I would like to customize the default date aggregation level.

parseDates: true,
dateFormats: [{
                fff: 'period',
                format: 'JJ:NN:SS'
            }, {
                period: 'ss',
                format: 'JJ:NN:SS'
            }, {
                period: 'mm',
                format: 'JJ:NN'
            }, {
                period: 'hh',
                format: 'JJ:NN'
            }, {
                period: 'DD', // day level
                format: 'MM/DD/YYYY'
            }, {
                period: 'WW', // week level
                format: 'MM/W/YYYY'
            }, {
                period: 'MM', // month level
                format: 'MMM YYYY'
            }, {
                period: 'YYYY',
                format: 'YYYY'
            }]

I would like to change the default day, week, month levels in the following manner.

DAY LEVEL: <= 14 days
WEEK LEVEL: 14 < x <= 91
MONTH LEVEL: 91 < x <= 731

I would like to customize the date aggregation levels in amCharts. How could I do this? Any help would be appreciated. Thanks in advance.

like image 570
Shinoj Avatar asked Jul 10 '14 09:07

Shinoj


1 Answers

You can't set this so precisely. The next period is chosen when there are too many items in the selected period. You can try adjusting minHorizontalGap value of CategoryAxis: http://docs.amcharts.com/3/javascriptcharts/CategoryAxis#minHorizontalGap (default is 75). If you make it smaller, more items will fit and you'll have more labels.

like image 114
zeroin Avatar answered Nov 02 '22 12:11

zeroin