2017-09-07 60 views
0

enter image description here如何減少graphviz圓環引擎中特定節點的邊緣長度。這裏是19個節點和22個邊的簡單點文件。 我使用以下命令編譯:如何減少圓環引擎中特定節點之間的邊緣長度graphviz

circo「input-filename」-Gstart = 5 -Gsize = 1,2! -Gdpi = 300 -Teps -o「輸出文件名」

digraph graphname { 
node [fontname = "times-roman-bold",fontsize=12]; 
    edge [fontname = "times-roman-bold",fontsize=12]; 
    rankdir=LR; 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
1 -> 2 
2 -> 3 
3 -> 5 
3 -> 4 
4 -> 5 
5 -> 6 
6 -> 8 
6 -> 7 
7 -> 8 
8 -> 9 
9 -> 11 
9 -> 10 
10 -> 14 
11 -> 12 
12 -> 14 
12 -> 13 
13 -> 17 
14 -> 15 
15 -> 16 
15 -> 17 
16 -> 19 
17 -> 18 
} 

由於要求,我們只需要使用圓環引擎進行編譯。這裏我附加了生成的輸出。而我的疑問是如何減少節點8和9(8 - > 9)邊緣之間的邊緣長度。請幫忙。提前致謝。

回答

0

您不能直接影響圓環中的邊緣長度,但可以添加不可見的節點或邊緣以影響佈局。

這裏的展示,如果你從每個節點的圖表中添加可見邊的最後一個節點發生了什麼一個例子:

<!DOCTYPE html> 
 
<meta charset="utf-8"> 
 
<body> 
 
<script src="//d3js.org/d3.v4.min.js"></script> 
 
<script src="https://unpkg.com/[email protected]/viz.js"></script> 
 
<script src="https://unpkg.com/[email protected]/build/d3-graphviz.min.js"></script> 
 
<div id="graph" style="text-align: center;"></div> 
 
<script> 
 

 
var dots = [ 
 
    ` 
 
digraph graphname { 
 
    graph [] 
 
    node [fontname = "times-roman-bold",fontsize=12]; 
 
    edge [fontname = "times-roman-bold",fontsize=12]; 
 
    rankdir=LR; 
 
    1 
 
    2 
 
    3 
 
    4 
 
    5 
 
    6 
 
    7 
 
    8 
 
    9 
 
    10 
 
    11 
 
    12 
 
    13 
 
    14 
 
    15 
 
    16 
 
    17 
 
    18 
 
    19 
 
    1 -> 2 
 
    2 -> 3 
 
    3 -> 5 
 
    3 -> 4 
 
    4 -> 5 
 
    5 -> 6 
 
    6 -> 8 
 
    6 -> 7 
 
    7 -> 8 
 
    8 -> 9 
 
    9 -> 11 
 
    9 -> 10 
 
    10 -> 14 
 
    11 -> 12 
 
    12 -> 14 
 
    12 -> 13 
 
    13 -> 17 
 
    14 -> 15 
 
    15 -> 16 
 
    15 -> 17 
 
    16 -> 19 
 
    17 -> 18 
 
} 
 
    `, ` 
 
digraph graphname { 
 
    graph [] 
 
    node [fontname = "times-roman-bold",fontsize=12]; 
 
    edge [fontname = "times-roman-bold",fontsize=12]; 
 
    rankdir=LR; 
 
    1 
 
    2 
 
    3 
 
    4 
 
    5 
 
    6 
 
    7 
 
    8 
 
    9 
 
    10 
 
    11 
 
    12 
 
    13 
 
    14 
 
    15 
 
    16 
 
    17 
 
    18 
 
    19 
 
    1 -> 2 
 
    2 -> 3 
 
    3 -> 5 
 
    3 -> 4 
 
    4 -> 5 
 
    5 -> 6 
 
    6 -> 8 
 
    6 -> 7 
 
    7 -> 8 
 
    8 -> 9 
 
    9 -> 11 
 
    9 -> 10 
 
    10 -> 14 
 
    11 -> 12 
 
    12 -> 14 
 
    12 -> 13 
 
    13 -> 17 
 
    14 -> 15 
 
    15 -> 16 
 
    15 -> 17 
 
    16 -> 19 
 
    17 -> 18 
 
// 
 
    2 -> 19 [color="red"] 
 
    3 -> 19 [color="red"] 
 
    4 -> 19 [color="red"] 
 
    5 -> 19 [color="red"] 
 
    6 -> 19 [color="red"] 
 
    7 -> 19 [color="red"] 
 
    8 -> 19 [color="red"] 
 
    9 -> 19 [color="red"] 
 
    10 -> 19 [color="red"] 
 
    11 -> 19 [color="red"] 
 
    12 -> 19 [color="red"] 
 
    13 -> 19 [color="red"] 
 
    14 -> 19 [color="red"] 
 
    15 -> 19 [color="red"] 
 
    16 -> 19 [color="red"] 
 
    17 -> 19 [color="red"] 
 
    18 -> 19 [color="red"] 
 
    19 -> 19 [color="red"] 
 
} 
 
    `, ` 
 
digraph graphname { 
 
    graph [] 
 
    node [fontname = "times-roman-bold",fontsize=12]; 
 
    edge [fontname = "times-roman-bold",fontsize=12]; 
 
    rankdir=LR; 
 
    1 
 
    2 
 
    3 
 
    4 
 
    5 
 
    6 
 
    7 
 
    8 
 
    9 
 
    10 
 
    11 
 
    12 
 
    13 
 
    14 
 
    15 
 
    16 
 
    17 
 
    18 
 
    19 
 
    1 -> 2 
 
    2 -> 3 
 
    3 -> 5 
 
    3 -> 4 
 
    4 -> 5 
 
    5 -> 6 
 
    6 -> 8 
 
    6 -> 7 
 
    7 -> 8 
 
    8 -> 9 
 
    9 -> 11 
 
    9 -> 10 
 
    10 -> 14 
 
    11 -> 12 
 
    12 -> 14 
 
    12 -> 13 
 
    13 -> 17 
 
    14 -> 15 
 
    15 -> 16 
 
    15 -> 17 
 
    16 -> 19 
 
    17 -> 18 
 
// 
 
    2 -> 19 [color="none"] 
 
    3 -> 19 [color="none"] 
 
    4 -> 19 [color="none"] 
 
    5 -> 19 [color="none"] 
 
    6 -> 19 [color="none"] 
 
    7 -> 19 [color="none"] 
 
    8 -> 19 [color="none"] 
 
    9 -> 19 [color="none"] 
 
    10 -> 19 [color="none"] 
 
    11 -> 19 [color="none"] 
 
    12 -> 19 [color="none"] 
 
    13 -> 19 [color="none"] 
 
    14 -> 19 [color="none"] 
 
    15 -> 19 [color="none"] 
 
    16 -> 19 [color="none"] 
 
    17 -> 19 [color="none"] 
 
    18 -> 19 [color="none"] 
 
    19 -> 19 [color="none"] 
 
} 
 
    ` 
 
]; 
 

 
var dotIndex = 0; 
 
var graphviz = d3.select("#graph").graphviz(); 
 

 
function render() { 
 
    var dot = dots[dotIndex % dots.length]; 
 
    var transition1 = d3.transition() 
 
     .delay(1000) 
 
     .duration(dotIndex == 0 ? 1000 : 5000); 
 
    graphviz 
 
     .tweenShapes(false) 
 
     .engine("circo") 
 
     .dot(dot) 
 
     .transition(transition1) 
 
     .render(); 
 
    dotIndex += 1; 
 

 
    transition1 
 
     .transition() 
 
     .duration(0) 
 
     .on('end', function() { 
 
      if (dotIndex != dots.length) { 
 
       render(); 
 
      } 
 
     }); 
 
} 
 

 
render(); 
 

 
</script>