从同一堆栈上的其他列获取值 - Highchart

时间:2013-07-15 02:14:44

标签: highcharts

我有这个堆积柱形图。 Demo

        tooltip: {
            formatter: function() {
                return '<b>'+ this.x +'</b><br/>'+
                    this.series.name +': '+ this.y +'<br/>'+
                    'Total: '+ this.point.stackTotal;
            }
        },

我希望当我悬停第一列时,它应显示:

John: 3
Bob: 5
Total: 8

无论我在同一列上悬停的堆栈,都应该显示3个值。

怎么做?我认为我的解决方案是get(this.total - this.y),但它没有显示正确的值。

2 个答案:

答案 0 :(得分:0)

在堆栈中显示值的常规方法是按如下方式定义工具提示:

tooltip:
{
    shared:true
},

http://jsfiddle.net/RG8YT/

我不确定这对你想要的东西是否足够好,就像在你的图表中那样,它显示了所有的值,而不仅仅是堆栈中的值。

此处有一个问题:highchart total in tooltip关于将总计添加到共享工具提示。

答案 1 :(得分:0)

如果您只想在“堆栈的一部分”中求和,我的意思是左/右,您可以部分地对元素求和。

 var indexS = this.series.index,
                    indexP = this.point.x,
                    series = this.series.chart.series,
                    out;


                out = '<b>'+ this.x +'</b><br/>'+
                    this.series.name +': '+ this.y +'<br/>';

                switch(indexS) {
                    case 0:
                        out += series[1].name + ': ' + series[1].data[indexP].y + '<br/>';
                        break;
                    case 1:
                         out += series[0].name + ': ' + series[0].data[indexP].y + '<br/>';                            break;
                    case 2:
                         out += series[3].name + ': ' + series[3].data[indexP].y + '<br/>';
                        break;
                    case 3:
                         out += series[2].name + ': ' + series[2].data[indexP].y + '<br/>';
                        break;
                }


                out += 'Total: '+ this.point.stackTotal;

                return out

http://jsfiddle.net/sbochan/3Utat/7/