如何在Sankey中显示工具提示而不是总和

时间:2018-10-22 05:09:58

标签: javascript highcharts sankey-diagram

如何显示与该特定栏相关的工具提示。目前,我可以在栏之间显示工具提示。但是,当我将鼠标悬停在足球,篮球,罗纳尔多或梅西上时,工具提示的总和就到了。如何显示工具提示而不是总和。 基本上,这是我想要的输出

当我将鼠标悬停在足球上时,我想要1,2,4,5,6,7,8,9,11,12 同样,当我将鼠标悬停在篮球上时,我想要11,12

Highcharts.chart('container', {

    title: {
        text: ''
    },
        xAxis: {
        type: 'category'
    },

    series: [{
        keys: ['from', 'to', 'weight', 'tooltip'],
        data: [

            ['Football', 'Basketball', 20, [1,2] ],
            ['Football', 'Ronaldo', 3, [4,5,6] ],
            //['Challenged', 'Terminated', 0 ],
            ['Football', 'Other', 1, [7,8,9,11,12] ],
            ['Basketball', 'Messi', 12, [] ],
            //['Instituted', ' Terminated', 0 ],
            ['Basketball', 'Gerad', 6 , [] ],
            ['Basketball', ' Rooney', 2, [11,12] ],

        ],
        type: 'sankey',

        nodeFormat:  function () { 
   var abc = []; 
   each(node.linksTo, function (link) { abc.push(link.tooltip) });

 return abc; 
},


    }]

});

2 个答案:

答案 0 :(得分:1)

对于nodeFormatter工具提示,应使用sankey功能,并根据需要创建一个字符串:

        nodeFormatter: function() {
            var result = '';

            Highcharts.each(this.linksFrom, function(el) {
                result += (el.tooltip && result ? ',' : '') + el.tooltip;
            });

            return result;
        }

实时演示:https://jsfiddle.net/BlackLabel/mh0ye5a7/

API:https://api.highcharts.com/highcharts/series.sankey.tooltip.nodeFormatter

答案 1 :(得分:-1)

您需要在这里做两件事。

  1. 在Bar上添加工具提示的nodeFormat,它的默认值为{point.name}: <b>{point.sum},这就是为什么您每次移交Bar时都会看到 sum 的原因

    pointFormat:'{point.fromNode.name}→{point.toNode.name} {point.tooltip}', nodeFormat:'{point.name}:{point.name}'

如上所述,我已经在您的小提琴中进行了更改,当我将鼠标悬停在“第一栏”上时,它将返回FoorBall:FootBall。

  1. 您需要编写nodeFormatter函数来解析每个点。这是一个回调函数,用于定义节点的格式,默认为undefined