我已经google搜索并搜索了堆栈溢出很多,然后才决定在这里提出这个问题,因为虽然有些问题似乎相似,但没有一个解决方案适合我。
我对有时非常宽范围的数据进行了分类,例如1881 - 2012,并且想要动态计算并将此范围划分为x轴上的仅11个点,这是我有空间显示而没有启用缩放。如果数据来自1881年至2012年,我希望它例如希望它显示(不完全计算)从1881年,1901年,1921年,1941年......如果它是从1958年至2013年,然后是1958年,1968年,1978年....
xAxis: {
categories: range(start_year,end_year),
tickmarkPlacement: "on",
tickInterval: Math.ceil(range(start_year,end_year).length/11),
},
.......
function range(start_year,end_year)
{
var years = [];
for(var i = start_year;i<=end_year;i++)
{
years.push(i);
}
return years;
}
这段代码的作用是跳过某些年份的标签,但仍会在图表上绘制点,导致x轴重叠年份。
任何关于此的线索都将受到高度赞赏。
这是说明我的困境http://jsfiddle.net/YUPzk/4/
的小提琴答案 0 :(得分:1)
您可以使用tickPositioner并准备自己的计算功能
下面的JavaScript是如何做到这一点的一个例子:
Highcharts.chart('container', {
title: {
text: 'Custom tick positions'
},
subtitle: {
text: 'through axis.tickPositions and axis.tickPositioner'
},
xAxis: {
tickPositions: [0, 1, 2, 4, 8]
},
yAxis: {
tickPositioner: function () {
var positions = [],
tick = Math.floor(this.dataMin),
increment = Math.ceil((this.dataMax - this.dataMin) / 6);
if (this.dataMax !== null && this.dataMin !== null) {
for (tick; tick - increment <= this.dataMax; tick += increment) {
positions.push(tick);
}
}
return positions;
}
},
series: [{
data: [ [0, 1],[1, 3],[2, 2],[4, 4],[8, 3] ]
}]
});
答案 1 :(得分:0)
对于其他任何努力完成这项工作的人来说,这就是你需要的东西,因为我做了大量的谷歌搜索,没有为遇到同样挑战的人找到答案