我正在将 Highcharts 用于一个项目,在该项目中我必须显示两个系列,每个系列大约有一千个点。 x 轴表示日期,y 轴表示数量。另外,每个点都有一个关联的名称列表,我的数据是逐日无间隙的,结构如
var mydata = [ ...
{x: theDate, y: theValue, names: theNames},
... ]
其中theNames
是一个字符串数组。我可以通过 this.points.point.names
在工具提示格式化程序中访问这些内容,假设图表上显示的范围足够小。如果我更改 x 轴,使开始日期和结束日期相距大约一年以上,则根本不会呈现工具提示。
到目前为止,我尝试过但失败的可能途径之一是将 TurboThreshold 限制设置为最长系列的长度加 1。设置此选项至少可以让我在 mydata.length > 1000 时显示一个图表
(默认值)。但是,只有当 x 轴范围小于 261 时,才会显示工具提示。否则,工具提示将完全消失,我从中获取名称的 point.data
对象也会消失。
我也不擅长 JavaScript,但我想知道是否有一种方法可以将点的名称与包含它们的数组分开(在我的示例中,myData1
和 myData2
)并以某种方式从工具提示函数访问这些名称,而无需经过当前点。
Here是演示此问题的 jsFiddle 的链接。
感谢所有帮助!
最佳答案
问题出在数据分组中,禁用后可以正常工作:http://jsfiddle.net/34tfg/1/
DataGrouping 是 Highcharts 中近似点的方法,并在图表宽度不够时显示它们,例如如何在宽度为 1 000px 的图表中显示 10 000 个点 -> 一个像素中显示 10 个点..?当使用 dataGrouping 时,会创建新点,因此所有自定义选项(如“名称”等)都会丢失(至少无法访问)。
代码:
plotOptions: {
line: {
dataGrouping: {
enabled: false
},
turboThreshold: 10000
}
},
关于javascript - Highcharts 中长系列的奇怪工具提示行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17305975/