Highcharts - 为共享工具提示对齐dateTime系列

时间:2015-07-01 10:00:15

标签: javascript jquery highcharts

我有2个时间点,我想分享'工具提示。但是,我有一个问题,即只有每个系列的第一个点对齐并共享工具提示。其余的点略有错位,因此无法同时显示在工具提示中。

这个小提琴将有助于证明这个问题。 Fiddle

如果将鼠标悬停在第一个点上,则会显示工具提示,其中包含两个系列的条目。但是下一个数据点只在工具提示中显示一个条目。

请问您的意见?我错过了什么'调整'两个系列都是为了分享工具提示?显然,仅添加

是不够的
tooltip: {
        shared: true,
}

谢谢。

2 个答案:

答案 0 :(得分:1)

假设最终目标是根据一天中的时间比较两个不同的日期,并假设数据点是定期的,或者足够接近并且可以被捏造(即每小时1点,或每10点)分钟等),我会采用不同的方法:

1)使用单个日期。它可以是今天的日期,或任何其他日期,它并不重要,因为时间是日期字符串的重要部分。

2)使用pointInterval//use the current date as the base - the date doesn't matter, just the time var d = new Date(); var date = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0,0,0); var pointStart = date.getTime(); var pointInterval = 3600 * 1000 // 1 hour 属性设置正确的时间(基于人工日期,但是正确的时间间隔)

3)将每个数据系列的实际日期设置为系列名称,该名称将显示在图例和共享工具提示中,以正确显示每个数据集的日期。

4)使用x轴标签上的格式选项仅显示标签的时间部分而不显示日期

通过这种方式,您无需使用第二个x轴,删除了工具提示格式中的任何复杂情况,无需使用更复杂的数据结构(例如评论中)(" {" y" :0.87," realDateTime":' 25/12/2015 03:00'}"),只需将适当的日期传递给每个系列的name属性

series: [{
   name : 'Apr 17, 2015',
   data : [2,5,8,9,8,7,4,5,6,9,8,7,8,9,8,7,8,5,3,2,1,4,4,5]
},{
   name : 'Jun 12, 2015',
   data : [3,6,9,5,4,7,8,5,2,1,4,5,9,8,7,5,6,9,8,7,4,5,6,3]
}]

GMailSender.sendMail()

示例:

[[当然,你可以根据需要用尽可能多的不同日期来做到这一点(虽然这很多显然没有意义):

]]

答案 1 :(得分:0)

我知道这是一个老问题,但我发现可行的替代方法是将数据重新格式化为CSV格式并为data module添加导入。

在Highcharts网站上有一个演示,它在here上完成了你所要求的(虽然嵌套在ajax请求中)。这里的两个关键部分是:

<script src="https://code.highcharts.com/modules/data.js"></script>

data: {
    csv: csvData
}

该示例读入实际的csv文件,但它接受任何格式相似的字符串。另外,如果您在该csv字符串中设置标题,则无需在系列选项中声明其名称。