1

我正在使用 Highstock 创建折线图。但是,我发现当日期范围小于特定天数时,会出现重复的 x 标签。我将格式化程序设置为仅显示天数。这是示例:http: //jsfiddle.net/ry4DQ/

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

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

X 轴上的重复天数

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

我尝试了该setExtremes事件,tickInterval当日期范围小于某个值时设置为 1 天,并且它有效。但是,当图表缩小时,标签文本会重叠。

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

4

4 回答 4

2

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

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

于 2013-07-12T09:43:43.400 回答
0

如果您删除formatterfrom xAsis.labels,问题就会消失。不过,您可能不喜欢日期格式。这是小提琴和屏幕截图:

在此处输入图像描述

于 2014-03-08T04:31:45.750 回答
0

这对我有用:

                xAxis: {
                type: 'datetime',
                tickPositions: 0,
                tickInterval:  24 * 3600 * 1000,
                tickPixelInterval: 110,
                maxTickPixelInterval: 125,
                minTickInterval: 100,
                labels: {
                    format: '{value:%m/%d/%y}',
                    enabled: true
                }
            },
于 2021-08-25T21:45:48.540 回答
0

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

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)
于 2016-06-03T17:42:01.487 回答