如何避免重复的X时间轴标签

时间:2013-07-12 07:15:24

标签: highstock

我正在使用Highstock创建折线图。但是,当日期范围小于特定天数时,我发现了一个问题,出现了重复的x标签。我设置formatter只显示几天。以下是示例:http://jsfiddle.net/ry4DQ/

labels: {
    formatter: function() {
          return Highcharts.dateFormat('%m/%d', this.value);
    }
}

当我将开始日期更改为2011-05-07时,您会在x轴上看到每天两个标签。

duplicate days on the X axis

有没有办法避免这个问题?

我尝试了setExtremes事件,将tickInterval设置为日期范围小于某个值的1天,并且它可以正常工作。但是,当图表调整为较小时,标签文本会重叠。

非常感谢任何帮助或信息!

3 个答案:

答案 0 :(得分:2)

标签重复,因为您为每个极端定义标签为%m /%d。即,当您有:18:00/22:00(2011-05-07的日期范围)时,这些值将与格式化程序重叠(%m%d)。因此结果是重复的。

tickInterval / minrange应定义为以毫秒为单位的时间,因此一天为24 * 3600 * 1000。

答案 1 :(得分:0)

如果您从formatter移除xAsis.labels,问题就会消失。您可能不喜欢日期格式。这是the fiddle和屏幕截图:

enter image description here

答案 2 :(得分:0)

@ sebastian-bochan的解决方案让我走上了正确的道路:您仍然可以使用格式化程序(与@ dan-dascalescu的答案相反),只需确保将间隔设置为正确的毫秒数量! / p>

if hour_axis == true
  date = 'h:MMTT'
  interval = 3600 * 1000
else
  date = 'm/d/yy'
  interval = 24 * 3600 * 1000

xAxis =
  xAxis:
     tickInterval: interval
     tickPositions: 0
     type: 'datetime'
     labels:
     formatter: ->
        dateFormat(@value, date)