高图:更改时间单位阈值

时间:2018-11-27 16:26:14

标签: highcharts

我正在寻找一种方法来覆盖Highcharts.timeUnits,这似乎是定义何时从一个单元跳转到另一个单元的数组。 (它没有源代码中的那么简单,但是...)

为什么?因为我的需求如下:

我有15分钟的时间数据,为期三年。 我想要一个可缩放的柱状图(我在实践中使用highstock),其中按给定的缩放比例按月显示1列,按比例缩放时按每周显示1列,然后按天按1分,按小时1分按15分。 >

在这个想法中,我使用plotOptions.series.dataGrouping.units定义以下参数:

    units: [
        [
            'minute',
            [15]
        ], [
            'day',
            [1]
        ], [
            'week',
            [1]
        ], [
            'month',
            [1]
        ], [
            'year',
            [1]
        ]
    ],

但是Highcharts使用自己的规则从一个单元跳到另一个单元,我发现这些规则不适合我的用例(我认为切换太“早”了) 我可以通过修改groupPixelWidth来稍微改变行为,但这是不得已的方法,因为它的行为仍然很奇怪。

这里是一个例子。如果单击各种时间标度,您会发现选择的timeUnit通常不适用。 例如,选择星期或跨度为2018年11月5日至2018年11月26日:您可以按小时显示数据,但是按可以更清晰地读取数据,等等。

https://jsfiddle.net/f4wma38h/

1 个答案:

答案 0 :(得分:0)

所以您要在15分钟和一个小时的时间内放大图表,对吗?

xAxis: {
  type: 'datetime',
  minRange: 15 * 60 * 1000
},
rangeSelector: {
buttons: [{
    type: 'minute',
    count: 15,
    text: '15m'
  }, {
    type: 'minute',
    count: 60,
    text: '1h'
  },.....

将xrange的最小值设置为15(以毫秒为单位),并在范围选择器中添加15m和1h的按钮

jsfiddle:https://jsfiddle.net/karnan796/f4wma38h/11/