5

我正在使用 Highcharts,并且我有一个带有日期时间轴的图表。大多数情况下,标签沿轴正确分布,没有重叠。

但有时标签会重叠。在这里您可以看到一个示例: http: //jsfiddle.net/4ghhf/ 使用 tickInterval 和 tickPixelInterval 并不能解决问题。

我应该怎么做才能避免这个问题?

4

6 回答 6

10

我看到两种解决问题的方法:

  • 更改刻度间隔
  • 更改标签显示

我在以下代码(xAxis 部分)中应用了两者:

$(function () {
 var chart = new Highcharts.Chart({

    chart: {
        renderTo: 'container',
        type: 'column'
    },

    xAxis: {
        type: 'datetime',
        tickInterval : 7*24 * 3600 * 1000,
        labels : { y : 20, rotation: -45, align: 'right' }
    },
    series: [{
        data: [
            [Date.UTC(2010, 3, 11), 29.9],
            [Date.UTC(2010, 4, 8), 71.5]
         ]
    }]
});
于 2012-04-23T14:30:22.403 回答
3

另一种解决方案是使用 tickPixelInterval,它定义了刻度之间的像素间距。更高的数字将导致更少的滴答声。

http://api.highcharts.com/highcharts#xAxis.tickPixelInterval

于 2013-02-14T21:22:56.523 回答
3

也许 staggerLines 是您的解决方案:

xAxis: {
    type: 'datetime',
    labels: {
        staggerLines: 2
    }
},

我用这个设置更新了你的 jsfiddle:http: //jsfiddle.net/benebun/4ghhf/134/

来自API 参考

staggerLines:数字(自 2.1 起)

仅水平轴。将标签展开以腾出空间或更紧密的标签的行数。.

(通过github上的此评论找到)

我用这个设置更新了你的 jsfiddle:http: //jsfiddle.net/benebun/4ghhf/134/

于 2012-11-30T17:15:48.260 回答
1

在这里找到我的答案:Highcharts 重叠类别标签 我使用 xAxis 标签的类别数组,而不是让 HighCharts 解析 UTC 日期代码。

于 2014-10-10T16:30:15.343 回答
0

它还可能取决于您使用的字体。对我来说,这发生在 Arial 上,但适用于 Helvetica 或 Times New Roman。

于 2014-12-09T10:53:20.427 回答
0

有同样的问题并用autoRotation配置修复。如果标签不合适,Highcharts 会自动旋转您的标签。如果有太多,即使在旋转时 Highcharts 也会尝试为您自动删除标签。

xAxis = {
    "type": 'datetime',
    "tickInterval": 30 * 24 * 3600 * 1000,
    "labels": {
        autoRotation: [45]
    }
}

只要确保您没有指定步骤,因为它会覆盖自动旋转。

于 2017-06-01T05:55:49.567 回答