在旧版浏览器中显示sankey

时间:2019-02-05 09:49:03

标签: javascript sorting highcharts sankey-diagram

我在较旧版本的浏览器-Chrome v49中对sankey图进行排序时遇到问题。我的图表如下所示: sankey

如何在老钻匠的熟悉设计中展示sankey?在jsfiddle中,较新的浏览器版本图表看起来正确。我已经实现了排序功能,但是在较旧的浏览器中无法使用。 我的jsfiddle

function sortData(fixedData) {
        return fixedData.sort((a, b) => b[2] - a[2]);
}

//const sortedData = sortData(fixedData);

const chart = Highcharts.chart('container', {

    title: {
        text: 'Highcharts Sankey Diagram'
    },

    series: [{
        keys: ['from', 'to', 'weight'],
        data: fixedData,
        type: 'sankey',
        name: 'Sankey demo series'
    }]
});

任何解决方案,我将不胜感激!

编辑
所以我的脚本看起来像this
OPERA v58中正确工作。 在CHROME v49

中无法正常工作

1 个答案:

答案 0 :(得分:0)

您需要根据同名值的总和而不是单个值对数据进行排序:

const fixedData = [
    ...
];

let sum;

fixedData.forEach(function(el1) {
    sum = 0;
    fixedData.forEach(function(el2) {
        if (el2[0] === el1[0]) {
            sum += el2[2]
        }
    });
    el1.push(sum);
});

function sortData(arr) {
    return [...arr].sort(function(b, a) {
        return b[3] - a[3]
    });
}

实时演示:http://jsfiddle.net/BlackLabel/td1ob0wg/