visjs缩小不相关的节点-值/比例无法按预期工作

问题描述

我试图引起人们注意所选节点的血统

最初,我只是尝试隐藏不相关的节点,但是位置不是确定的,因此会将先前隐藏的节点放在不隐藏的随机位置

现在我正在尝试缩小不相关的节点,但是节点值/比例的东西似乎没有按预期工作,并且最大大小被忽略了

例如,如果我将最小大小设置为1,将最大大小设置为24 并将初始值设置为24 我希望节点数为24,或者最大允许大小

然后,当我将不相关的节点的大小设置为1后在不相关的节点上运行nodes.updateonly()时,它也会缩放未修改的节点。

我希望所选的节点保持相同的大小

理想情况下,我想要类似的东西 最小1,最大20 初始尺寸19

在选择集上,将相关节点设置为20,将不相关节点设置为1。 取消选择后,一切恢复为19

visjs是否支持功能?或者我错过了扩展功能的要点(如果是,还有其他方法吗?)

此处示例: http://jsfiddle.net/rona1xyv/

    // create an array with nodes
    var nodes = new vis.DataSet([{
        id: 1,label: 'a',level: 0,},{
        id: 2,label: 'b',{
        id: 3,label: 'c',level: 0
      },{
        id: 4,label: 'd',level: 2
      },{
        id: 5,label: 'e',level: 4
      },{
        id: 6,label: 'f',{
        id: 7,label: 'g',{
        id: 8,label: 'h',level: 6
      },{
        id: 9,label: 'i',level: 8
      },{
        id: 10,label: 'j',{
        id: 11,label: 'k',level: 4
      }
    ]);

    // create an array with edges
    var edges = new vis.DataSet([{
        from: 3,to: 4
      },{
        from: 4,to: 5
      },{
        from: 3,to: 6
      },{
        from: 2,{
        from: 6,to: 7
      },{
        from: 1,to: 8
      },{
        from: 7,{
        from: 8,to: 9
      },{
        from: 10,to: 11
      },{
        from: 11,to: 8
      }
    ]);

    // create a network
    var container = document.getElementById('mynetwork');

    // provide the data in the vis format
    var data = {
      nodes: nodes,edges: edges
    };
    var options = {
      nodes: {
        shape: "Box",value: 24,scaling: {
                    min: 1,max: 24,label: {
            enabled: true,min: 1,max: 24
          },edges: {
        arrows: 'to',smooth: {
          type: "dynamic",forceDirection: "none",roundness: 0.5,}
      },layout: {
        improvedLayout: true,//clusterThreshold: 150,hierarchical: {
          enabled: true,//levelSeparation: 250,nodeSpacing: 100,//treeSpacing: 200,blockShifting: true,edgeminimization: true,//parentCentralization: true,direction: 'LR',// UD,DU,LR,RL
          sortMethod: 'directed',// hubsize,directed
          shaketowards: 'roots' // roots,leaves
        }
      }
    };

    // initialize your network!
    var network = new vis.Network(container,data,options);

    network.on("click",function(params) {
      // reset hidden of all nodes at the start of the click
      allNodes = nodes.get();
      allNodes.forEach(function(element) {
        element.opacity = 1;
        element.value = 24;
//        element.hidden = false;
      });
      relatednodes = getAllRelatednodes(params.nodes[0],"from");
      relatednodes = relatednodes.concat(getAllRelatednodes(params.nodes[0],"to"));
      if (params.nodes.length > 0) {
        allNodes = nodes.get();
        allNodes.forEach(function(element) {

          if (!relatednodes.includes(element.id)) {
            element.opacity = 0.3;
            element.value = 1;
           // element.hidden = true;
          }

        });
      }
      nodes.updateOnly(allNodes);
      network.stabilize();
      network.fit();
    });

    function getAllRelatednodes(nodeId,direction) {
      var allRelatednodes = [nodeId];
      i = 0;
      while (allRelatednodes[i]) {
        x = network.getConnectednodes(allRelatednodes[i],direction);
        allRelatednodes = allRelatednodes.concat(x);
        i++;
      }
      return allRelatednodes;
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)