highcharts只在某些点上有数据标签

时间:2016-06-02 14:08:29

标签: highcharts

我使用highcharts来显示机器记录数据。通过PHP格式化/创建数据。页面上有一个开关,让用户选择让X轴显示值发生的时间,或只是一个计数器。

对于一个系列,该值大多为零,但有时不是。我希望在值不为零且仅在此系列中显示标签。 我使用x-axis != time选项:

[0,0,0,{y:125.71,dataLabels: {enabled: true}},0,0]

每个点打开标签,这都有效。

当我切换到在X轴上显示时间时,我需要格式化这样的数据:

[Date.UTC(2016, 6, 1, 09, 06), 0],[Date.UTC(2016, 6, 1, 09, 06), 0, [Date.UTC(2016, 6, 1, 09, 06), 216],[Date.UTC(2016, 6, 1, 09, 06), 0],[Date.UTC(2016, 6, 1, 09, 06), 0],[Date.UTC(2016, 6, 1, 09, 06), 0]

我无法弄清楚如何在这里展示标签。这个数据格式化也可以吗?

如果还有其他方法可以做到这一点:

if (value>0) {show label}

1 个答案:

答案 0 :(得分:4)

它本质上是相同的 - 您将数据点作为单个y值,x,y值数组或{{1}对象发送对,你可以像第一个例子中那样混合和匹配。

因此,这个数据数组将每个数据点作为x,y值的数组发送,只需要将其中一个数组作为对象发送。这样:

key: value

变为:

[
  [Date.UTC(2016, 6, 1, 09, 06), 0],
  [Date.UTC(2016, 6, 1, 09, 06), 216],
  [Date.UTC(2016, 6, 1, 09, 06), 0]
]

就像你使用非日期时间版本一样。

唯一的区别是您指定了[ [Date.UTC(2016, 6, 1, 09, 06), 0], {x: Date.UTC(2016, 6, 1, 09, 06), y: 216, dataLabels: { enabled: true }}, [Date.UTC(2016, 6, 1, 09, 06), 0] ] 以及'x':

[[修改

至于问题的第二部分,您也可以使用格式化程序来完成此任务:

'y':