Javascript Highcharts-分类气泡图的共享工具提示

Javascript Highcharts-分类气泡图的共享工具提示,javascript,jquery,highcharts,tooltip,Javascript,Jquery,Highcharts,Tooltip,在中,将使用共享工具提示。工作起来很有魅力 tooltip: { formatter: function () { console.log(this); var s = '<b>' + this.x + '</b>'; $.each(this.points, function () { s += '<br/>' + this.series.

在中,将使用共享工具提示。工作起来很有魅力

tooltip: {
        formatter: function () {
            console.log(this);
            var s = '<b>' + this.x + '</b>';

            $.each(this.points, function () {
                s += '<br/>' + this.series.name + ': ' +
                    this.y + 'm';
            });

            return s;
        },
        shared: true
    }
工具提示:{
格式化程序:函数(){
console.log(this);
var s=''+此.x+'';
$.each(this.points,function(){
s+='
'+this.series.name+':'+ 这个.y+‘m’; }); 返回s; }, 分享:真的 }
现在我正在寻找一种显示气泡图共享工具提示的方法,如下所示:

不幸的是,
formatter
选项属性中的
this
对象与第一个示例不同

那么,有没有办法在气泡图中共享工具提示,或者我必须创建自己的自定义工具提示功能


感谢您的回答。

解决方法之一是:

回调函数如下所示:

var shared_tooltip = function(x,y){

        var series = $('#container').highcharts().series;
        var s = x + '|'+y;

        $.each( series, function (key1, value1){
            var data_el_x = value1.data.filter(function(el){
                return (el.x === x);
            });
            if(data_el_x.length === 0){
                return false;
            }
            var data_el_xy = data_el_x.filter(function(el){
                return (el.y === y);
            });
            var valfreq = (data_el_xy.length === 0) ? 0 : data_el_xy[0].z;
            var allfreq = 0;
            $.each( data_el_x, function (key2, value2){
                allfreq += value2.z;
            });

            s+='<br/>'+value1.name+': '+valfreq+'/'+allfreq;

        });

        return s;

    };
var共享工具提示=函数(x,y){
var series=$('#container').highcharts().series;
var s=x+'|'+y;
$。每个(系列,功能(键1,值1){
var data_el_x=value1.data.filter(函数(el){
返回(el.x==x);
});
如果(数据长度=0){
返回false;
}
var data_el_xy=数据_el_x.过滤器(函数(el){
返回(el.y==y);
});
var valfreq=(data_el_xy.length==0)?0:data_el_xy[0]。z;
var-allfreq=0;
$。每个(数据、函数(键2、值2){
allfreq+=值2.z;
});
s+='
'+value1.name+':'+valfreq+'/'+allfreq; }); 返回s; };
您需要在每个序列和点上迭代,比较x值

tooltip: {
        formatter: function () {
            var s = '<b>' + this.x + '</b>',
                x = this.point.x;
            $.each(this.series.chart.series, function (i, serie) {
                $.each(serie.data, function (j, p) {
                    if (p.x === x) {
                        s += '<br/>' + this.series.name + ': ' + p.y;
                    }
                });
            });

            return s;
        },
        shared: true
    },
工具提示:{
格式化程序:函数(){
变量s=''+这个.x+'',
x=该点x;
$.each(this.series.chart.series,function(i,serie){
$。每个(系列数据、函数(j、p){
如果(p.x==x){
s+='
'+this.series.name+':'+p.y; } }); }); 返回s; }, 分享:真的 },

示例:

与may解决方案相同的方法,thanx仍然:令人惊讶的是,Highcharts在共享气泡工具提示时改变了它的beaviour…是的,但我认为它更短;)是否可以在bubble和country highmap之间共享工具提示?嗨,vuquanghoang,这个主题非常古老,与您的问题几乎没有关系,因此我建议您创建另一个主题,其中包含一些代码和实例,以及
highcharts
标记。
tooltip: {
        formatter: function () {
            var s = '<b>' + this.x + '</b>',
                x = this.point.x;
            $.each(this.series.chart.series, function (i, serie) {
                $.each(serie.data, function (j, p) {
                    if (p.x === x) {
                        s += '<br/>' + this.series.name + ': ' + p.y;
                    }
                });
            });

            return s;
        },
        shared: true
    },