Highcharts限制显示类别

时间:2014-03-26 19:13:16

标签: javascript graph highcharts categories

我有一个使用日期(2014年2月3日,2014年2月10日等)作为类别的列图。有时有4个日期,有时有20-30个日期。我的问题是,一旦有20多个类别,x轴看起来就会混乱。有没有办法限制这些类别的显示,即使我传入的内容超出了我想要显示的范围?

我们说我通过了25个日期,范围在2/1/2014和2014年3月15日之间。有没有办法只显示5个,最好是每个之间有相同的时间(例如:2/1 / 14,2 / 10 / 14,2 / 20 / 14,2 / 28 / 14,3 / 10 / 14,3 / 15/14)

2 个答案:

答案 0 :(得分:3)

可能为时已晚,但这应该是您需要的功能:

xAxis: {
   categories: ['1', '2', '3', '4', '5'],
   labels:{
     step: 2 // displays every second category
   }
 }

在您的情况下,您希望在运行时设置选项,所以:

if(chart.xAxis[0].names.length>12){
   interval=parseInt(chart.xAxis[0].names.length/12);
   chart.xAxis[0].update({labels:{step: interval}});
}

还有一个名为tickInterval的选项,它可能对此有用。

答案 1 :(得分:0)

原来我发现了一个非常简单的解决方案。以下是我用来确保x轴上显示的类别不超过12个的代码:

//we want a max of 12 labels to avoid clutter
            if(xData.length>12)
            {
                //determine label interval
                interval=parseInt(xData.length/12);
                for(j=0;j<xData.length;j++)
                {
                    if(j%interval==0)
                    {
                        tempLabels.push(xData[j]);  
                    }
                    else
                    {
                        tempLabels.push(' ');       
                    }
                }
                //transfer new labels 
                xData=tempLabels;
            }