Highcharts:传递更多信息的提示(Highcharts: passing additiona

2019-09-29 13:54发布

我有我传递到Highcharts图表,看起来像数据点的数组

mydata = [{
    x: 1,
    y: 3,
    nameList: ["name1", "name2"]
}, {
    x: 2,
    y: 4,
    nameList: ["name3", "name4"]
}]

我建立这样的图表:

$("#chart").highcharts("StockChart", {
    series: [{
        data: mydata
    }, {
        data: yourdata
    }]
});

现在,我希望能够从共享工具提示,这是我想做按如下方式访问数组NAMELIST:

tooltip: {
    formatter: function() {
        var s = "";
        $.each(this.points, function(i, point) {
            s += point.point.nameList;
        });
        return s;
    },
    shared: true
}

但使用Firebug的检查点对象时console.log(point) ,我似乎无法在他们的任何地方找到名称列表条目。 我怎么能访问共享的一系列提示该辅助信息? 所有的帮助表示赞赏。

Answer 1:

找到了!

默认情况下,Highcharts将接受多种不同类型的输入的一系列的数据,包括

  1. 数值的数组。 在这种情况下,数字的值将被解释和y的值,并且x值将被自动计算,或者从0开始并递增1,或从给定plotOptions和pointStart pointInterval。
  2. 数组的数组与两个值。 在这种情况下,第一值是x值,第二个是y值。 如果第一个值是一个字符串,它被应用为点的名称,和x的值被递增按照上述规则。
  3. 与名为值的对象的阵列。 在这种情况下,对象是点配置对象,如下所示。

然而,类型3的处理是由1型和2不同:如果阵列比turboThreshold设定值,则式3的阵列将不被呈现。 因此,要解决我的问题,我只是需要提高turboThreshold设置,如下所示:

...
plotOptions: {
    line: {
        turboThreshold: longestArray.length + 1
    }
},
...

与图表呈现longestArray正确数据。 欢呼! 唯一的缺点是,有花呈现的数据,由于更长的阵列相当长的时间“在一长串昂贵的数据检查和索引。” 如果你们知道我如何能够绕过这个检查或以其他方式能够加快这一数据的处理,我会非常感谢,如果你让我知道如何。



Answer 2:

我可以在这里看到:

tooltip: {
    formatter: function() {
        var s = "";
        console.log(this.points[0].point.nameList); // ["name1", "name2"] 
        $.each(this.points, function(i, point) {
            s += point.point.nameList;
        });
        return s;
    },
    shared: true
}


文章来源: Highcharts: passing additional information to a tooltip