我使用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}
答案 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':