我按月分组数据时遇到问题。我认为这是我使用的数据集大小(2018年1月1日 - 2018年4月30日)的错误,但也许有更好的方法来利用dataGrouping
。我遇到的问题是X轴标签不正确。
对于2018年1月1日至2018年4月30日的日期范围:
预期的X轴: " Jan,' 18" " 2月,' 18" " Mar,' 18" " 4月,' 18"
实际X轴: " Jan,' 18" " 2月,' 18" " Mar,' 18" " Mar,' 18" " 4月,' 18"
在我的示例(jsfiddle)中,我在第76行有条件地启用了dataGrouping:data.dataGrouping.enabled = (e.target.value === 'month');
非常感谢任何见解。
答案 0 :(得分:0)
我认为我找到了解决方案:使用HighStocks而不是HighCharts
我的结果已更新fiddle。总结:
使用HighScocks并关闭一些功能,使其显示为Highstock图表:
var chart = Highcharts.stockChart('myChart', {
chart: {
type: 'column',
width: null
},
xAxis: {
labels: {
enabled: true,
formatter: function() {
if (grouping === 'date') {
return Highcharts.dateFormat('%b %e, \'%y', this.value);
} else {
return Highcharts.dateFormat('%b, \'%y', this.value);
}
}
}
},
navigator: {
enabled: false
},
scrollbar: {
enabled: false
},
rangeSelector: {
enabled: false
},
yAxis: {
title: {
text: null
}
},
title: {
text: null
},
legend: {
enabled: false
},
plotOptions: {
series: {
color: 'white'
}
},
tooltip: {
backgroundColor: '#0E7BBA',
style: {
color: 'white'
},
formatter: function() {
var s = ''
if (grouping === 'date') {
s = '<b>' + Highcharts.dateFormat('%A, %b %e, %Y', this.x) + '</b>';
} else {
s = '<b>' + 'Date: ' + Highcharts.dateFormat('%A, %b %e, %Y', this.x) + '<br />' +
'<b>Month: ' + Highcharts.dateFormat('%B %Y', this.x) + '</b>';
}
s += '<br />' + this.points[0].series.name + ': ' + this.y;
return s;
}
},
credits: {
enabled: false
},
series: []
}
);