我设置了Highcharts以显示包含一堆xAxis类别的图表。这一切都运行正常,但我希望能够跳过一些xAxis类别,因此不会显示所有内容。您可以在Campaign Monitor的报告部分中查看此示例(屏幕截图:http://screencast.com/t/Y2FjNzQ4Y)。
知道如何实现同样的布局吗?
答案 0 :(得分:41)
似乎xAxis:labels:step值应该用于实现此目的:
xAxis: {
categories: ['JAN', 'FEB', 'MAR', 'APR', 'MAY'],
labels:{
step: 2 // this will show every second label
}
},
超级晚了,但我认为这可以帮助别人。
答案 1 :(得分:5)
xAxis: {
categories: categoriesname,
labels: {
style: {
color: '#000',
font: '9px Trebuchet MS, Verdana, sans-serif'
}
},
**tickInterval: TickInterval,**// SET THIS
tickPixelInterval: 80,
tickmarkPlacement: 'on'
},
答案 2 :(得分:4)
您可以将xAxis类型设置为“datetime”,然后在plotoptions中设置pointInterval和PointStart。
代码示例:
var chart;
$(document).ready(function () {
chart = new Highcharts.Chart({
"xAxis": {
"type": "datetime"
"plotOptions": {
"line": {
"pointInterval": 86400000,
"pointStart": 1282408923000
}
},
});
});
您在pointInterval和Start中看到的数字以毫秒为单位,您可以使用getTime()生成这些数字。您的情况间隔为86400000毫秒,即一天。库根据您的数据间隔显示适当的间隔。
答案 3 :(得分:0)
这是我丑陋的解决方案:)
我正在使用数组作为队列。 http://javascript.about.com/library/blqueue.htm 如果将点数据填充到队列中,则可以为图表系列设置数据。
var myQueue = new Array();
var myPoint = [x, y]; myQueue.push(myPoint);
chart.series[0].setData(myQueue);
my X axis is not a datetime, it's an integer
first
var x = 0;
当您需要新点时,x值应始终递增。 http://dl.dropbox.com/u/3482121/picture/highcharts/PM/Screenshot.png