Highcharts - 访问覆盖的数据点

3

我有一个散点系列,其中有两个具有相同坐标的点。每个点都有不同的相关数据(例如不同人的体重和身高 - 两个不同的人可能会有完全相同的体重和身高):

series: [ {
            data: [{x:193.5, y:80.7, name:'danny'},
                  {x:193.7, y:90.7, name:'oren'},
                  {x:193.7, y:90.7, name:'josef'},
                  {x:195.5, y:80.3, name:'thomas'}]
        }]

完整示例请参见jsfiddle

在查看图表的工具提示时,第二个点的工具提示显示为:

Oren: 193.7,90.7

使 josef 的数据不可访问。
我想把 joseforen 的数据变得可访问,例如通过将它们放在同一个工具提示框内。
Oren: 193.7,90.7
Josef: 193.7,90.7

您如何实现此效果?

假设有一个非常大的数据集-每次迭代整个系列都不是一个选项。


1
你应该更好地构建你的数据数组......比如当两个人分享同一个点时,它应该像这样构建:series: [ { data: [{x:193.5, y:80.7, name:'丹尼'}, {x:193.6, y:90.6, name:'奥伦和约瑟夫共享同一点'},
{x:195.5, y:80.3, name:'托马斯'}] }]
- Hackerman
这是一个很好的想法,但每个点上有相当多的单独数据。唯一共享的是坐标。我宁愿把它们视为单个点,只作为最后的手段。 - Lizozom
然后,您应该首先对该数组应用排序算法...当您的数组有序时,再使用所需的构造方法构建新数组 ;) - Hackerman
这也很好。我希望Highcharts有某种接近度地图机制,这样我就可以从坐标X、Y获取半径R内的所有点? - Lizozom
1
另一种方法是将重复项放入不同的数据中,例如这个系列:[{ data: [{x:193.5, y:80.7, name:'丹尼'}, {x:193.7, y:90.7, name:'奥伦'},
{x:195.5, y:80.3, name:'托马斯'}] }, { data: [ {x:193.7, y:90.7, name:'约瑟夫'}] }
]
- Hackerman
所以您想要为两个点显示工具提示,还是其他什么? - Sebastian Bochan
1个回答

1
你可以使用工具提示格式化程序(http://api.highcharts.com/highcharts#tooltip)手动格式化工具提示。
在格式化程序中,比较系列中所有其他点的x和y值(this.series)。如果这些值相同,则将这些点的名称添加到工具提示中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接