Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Highcharts按ID选择点_Javascript_Highcharts - Fatal编程技术网

Javascript 使用Highcharts按ID选择点

Javascript 使用Highcharts按ID选择点,javascript,highcharts,Javascript,Highcharts,使用Highcharts,如何使用其id选择点?例如,如果我使用以下代码创建图表: chart1 = new Highcharts.Chart({ chart: { renderTo: 'container', type: 'scatter' }, title: { text: 'Fruit Consumption' }, xAxis

使用Highcharts,如何使用其id选择点?例如,如果我使用以下代码创建图表:

 chart1 = new Highcharts.Chart({
         chart: {
            renderTo: 'container',
            type: 'scatter'
         },
         title: {
            text: 'Fruit Consumption'
         },
         xAxis: {
            categories: ['Apples', 'Bananas', 'Oranges']
         },
         yAxis: {
            title: {
               text: 'Fruit eaten'
            }
         },
         series: [{
            name: 'Jane',
            data: [{
                name: 'Point1',
                x: 1,
                y: 2
            }, {
                name: 'Point2',
                x: 2,
                y: 5
            }]
         }, {
            name: 'John',
            data: [5, 7, 3]
         }]
      });
   });
工具提示告诉我,当我将鼠标悬停在某个点上时,id是什么。然而,我无法理解识别这一点的语法。我知道
chart1.series[0]。name
返回
Jane。另外,
chart1.series[0]。数据[0]。名称
返回
point1`有没有一种简单的方法可以让我只知道“point1”就可以选择点并更改颜色


我想知道除了每次循环遍历所有点之外,是否还有更有效的方法。

您可以为想要获取的每个点设置一个
id

series: [{
    name: 'Jane',
    data: [{
        'name': 'Point1',
        'id': 'point1',
        'x': 1,
        'y': 2
    }, {
        'name': 'Point2',
        'id': 'point2',
        'x': 2,
        'y': 5
    }]
}, {
    name: 'John',
    data: [5, 7, 3]
}]
然后,您可以通过以下代码获得该点。

// assuming that chart is your chart var
chart.get('point1');

或者,如果您不想设置
id
,您可以简单地循环
,将要查找的
名称
点名称
进行比较

参考:


干净、简单、高效。除了效率不高之外。Clean and simple仍然是正确的,但HighChart的“chart.get()”方法在幕后迭代每个系列和该系列中的每个点,以找到匹配项。在已经按x值排序的数据集上是O(n)。因此,由应用程序开发人员使用highcharts实现的二进制搜索将提供更好的效率,因为您至少可以自己进行O(logn)搜索。阅读API文档始终是学习如何完成任务的最佳方法。。它是学习/培训的另一个有效来源。:)我差不多两年前问过这个问题。当时,文件中没有讨论这一点。