Javascript Highcharts:网络图:标记半径=连接数

Javascript Highcharts:网络图:标记半径=连接数,javascript,highcharts,Javascript,Highcharts,在highcharts网络图中: ,我看不到动态调整标记半径以匹配标记的连接数的方法 例如: data: [ ['Jim', 'Michael'], ['Jim', 'Pam'], ['Jim', 'Dwight'], ['Michael', 'Pam'], ] 我们希望看到: 吉姆的标记半径为3 Michael的标记半径为2 Pam的标记半径为2 德怀特的标记半径为1 您需要通过迭代数据链接并计算每个节点的连接数来计算半径 Highcharts.addEv

在highcharts网络图中: ,我看不到动态调整标记半径以匹配标记的连接数的方法

例如:

data: [
    ['Jim', 'Michael'],
    ['Jim', 'Pam'],
    ['Jim', 'Dwight'],
    ['Michael', 'Pam'],
]
我们希望看到:

  • 吉姆的标记半径为3
  • Michael的标记半径为2
  • Pam的标记半径为2
  • 德怀特的标记半径为1

您需要通过迭代数据链接并计算每个节点的连接数来计算半径

Highcharts.addEvent(
    Highcharts.Series,
    'afterSetOptions',
    function (e) {
            
            let nodeCounts = {};
      
            //count connections for each From or To node
            e.options.data.forEach(function (link) {
                nodeCounts[link[0]] = (nodeCounts[link[0]] || 0) + 1;
                nodeCounts[link[1]] = (nodeCounts[link[1]] || 0) + 1;
            });

            let radiusFactor = 3; //radius multiplier to graphically enlarge nodes

            //map each nodeCount to a node object setting the radius
            e.options.nodes = Object.keys(nodeCounts).map(function (id) {                   
                return {
                id: id,
                marker: {   radius: nodeCounts[id] * radiusFactor }
                };
            });
        }    
);

您需要通过迭代数据链接并计算每个节点的连接数来计算半径

Highcharts.addEvent(
    Highcharts.Series,
    'afterSetOptions',
    function (e) {
            
            let nodeCounts = {};
      
            //count connections for each From or To node
            e.options.data.forEach(function (link) {
                nodeCounts[link[0]] = (nodeCounts[link[0]] || 0) + 1;
                nodeCounts[link[1]] = (nodeCounts[link[1]] || 0) + 1;
            });

            let radiusFactor = 3; //radius multiplier to graphically enlarge nodes

            //map each nodeCount to a node object setting the radius
            e.options.nodes = Object.keys(nodeCounts).map(function (id) {                   
                return {
                id: id,
                marker: {   radius: nodeCounts[id] * radiusFactor }
                };
            });
        }    
);

您可以通过类似的方式设置其各自的颜色您可以通过类似的方式设置其各自的颜色