我用来highcharts显示机器日志数据。数据通过 PHP 格式化/创建。页面上有一个开关,让用户可以选择让 X 轴显示值发生的时间,或者只是一个计数器。
对于一个系列,该值大部分为零,但有时也不是。我想在值不为零且仅在本系列中时显示标签。对于x-axis != time我正在使用的选项:
[0,0,0,{y:125.71,dataLabels: {enabled: true}},0,0]
Run Code Online (Sandbox Code Playgroud)
打开每个点的标签,就可以了。
当我切换到在 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]
Run Code Online (Sandbox Code Playgroud)
我不知道如何在这里显示标签。这种数据格式也可以吗?
另外,如果还有其他方法可以做到这一点:
if (value>0) {show label}
Run Code Online (Sandbox Code Playgroud)
本质上是同一件事 - 您可以将数据点作为单个y值、值数组x,y或成对对象发送key: value,并且可以像第一个示例中那样混合和匹配。
因此,这个数据数组将每个数据点作为 x,y 值数组发送,只需要作为对象发送的数组之一。这:
[
[Date.UTC(2016, 6, 1, 09, 06), 0],
[Date.UTC(2016, 6, 1, 09, 06), 216],
[Date.UTC(2016, 6, 1, 09, 06), 0]
]
Run Code Online (Sandbox Code Playgroud)
变成:
[
[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]
]
Run Code Online (Sandbox Code Playgroud)
就像您对非日期时间版本所做的那样。
唯一的区别是您指定'x':以及'y':
[[编辑
至于问题的第二部分,您也可以使用格式化程序来完成此操作:
dataLabels: {
formatter: function() {
return this.y > 0 ? this.y : '';
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |