显示具有两个或更多堆栈列的工具提示

时间:2014-03-17 14:59:18

标签: highcharts

当我选择一个列时,我想显示一个工具提示,其中只选择了特定堆栈的值,但是我显示了两个堆栈的所有值(2012和2013)。

我可以配置工具提示只显示一个堆栈值吗?

如果我不能这样做,我如何在工具提示(2012或2013)中显示堆栈标签?
我试图使用point.series.stack,但我得到一个未定义的值。有可能吗?

在堆积图表上显示工具提示的代码:

tooltip: {
    formatter: function() {
    var s = '<b>'+ this.x +'</b>';
        $.each(this.points, function(i, point) {
        s += '<br/>'+ point.series.name +': '+point.series.stack+':'+ point.y +'m';
                            });
            return s;
                          },
    shared : true
         }

The complete code

感谢您的帮助。

嗨再次

我按照你的建议,只显示同一堆栈的值。

我有这个格式化代码:

tooltip: {

            formatter: function() {
                                            var tip = '<b>'+ this.x ;
                                            var stackSelected = this.point.series.options.stack;

                                            tip += '/'+stackSelected+'</b>';

                                            $.each(this.series.chart.series, function(i, s) {
                                                if(s.options.stack == stackSelected){
                                                    tip += '<br/><br/>';
                                                    tip += '<b>'+s.name+' : </b>'+s.yAxis;
                                                }

                                            });

                                            return tip;
                            },
            shared : false

        }

但是我有问题才能获得每个系列的价值。

你能帮帮我吗?

提前致谢

我忘记了完整的代码:http://jsfiddle.net/Kqumw/4/

2 个答案:

答案 0 :(得分:1)

我可以得到我想要的

感谢您的提示。

这是我的工具提示代码:

tooltip: {

            formatter: function() {
                            var tip = '<b>'+ this.x ;
                            var stackSelected = this.point.series.options.stack;
                            var categorySelected = this.point.category;

                            tip += '/'+stackSelected+'</b>';
                            tip += '<br/><br/>';

                            var index = 0;
                            $.each(this.series.chart.series, function(i, s) {
                                if(s.options.stack == stackSelected){

                                    $.each(s.data, function(j, point){
                                        if(point.category == categorySelected)
                                            tip += '<b>'+s.name+' : </b>'+point.y+'<br>';
                                    });

                                }

                            });

                            return tip;
                            },
            shared : false

        }

这是完整的代码http://jsfiddle.net/Kqumw/5/

答案 1 :(得分:0)

在为工具提示设置共享时,无法为同一类别显示不同的工具提示。如果要在工具提示中显示堆栈,请使用point.series.options.stack,请参阅:http://jsfiddle.net/Kqumw/1/

如果您只想显示一个堆栈(悬停点的完整堆栈),则禁用共享(shared: false)并在您自己的相应点上查找相同类别和相同堆栈(通过比较类别索引/来自点的名称和来自系列的堆栈ID)。