摆脱graphviz输入文件中的传递关系

Let*_*_Be 2 graphviz

我有相对复杂的graphviz输入文件,包含传递关系.不幸的是,这些使得输出过于复杂而不添加任何其他信息.

有没有简单的方法从输入/输出中去除这些传递关系.

输入示例:

digraph main { 
subgraph cluster_Session_0 {
color = black;
label = "Session_0";
 "Batch_0_0";
}
subgraph cluster_Session_1 {
color = black;
label = "Session_1";
 "Batch_1_0" "Batch_1_1" "Batch_1_2" "Batch_1_3" "Batch_1_4";
}
subgraph cluster_Session_2 {
color = black;
label = "Session_2";
 "Batch_2_0" "Batch_2_1" "Batch_2_2" "Batch_2_3";
}
subgraph cluster_Session_3 {
color = black;
label = "Session_3";
 "Batch_3_0";
}
subgraph cluster_Session_4 {
color = black;
label = "Session_4";
 "Batch_4_0";
}
subgraph cluster_Session_5 {
color = black;
label = "Session_5";
 "Batch_5_0";
}
subgraph cluster_Session_6 {
color = black;
label = "Session_6";
 "Batch_6_0";
}
subgraph cluster_Session_7 {
color = black;
label = "Session_7";
 "Batch_7_0";
}
subgraph cluster_Session_8 {
color = black;
label = "Session_8";
 "Batch_8_0";
}
subgraph cluster_Session_9 {
color = black;
label = "Session_9";
 "Batch_9_0";
}
subgraph cluster_Session_10 {
color = black;
label = "Session_10";
 "Batch_10_0";
}
subgraph cluster_Session_11 {
color = black;
label = "Session_11";
 "Batch_11_0";
}
subgraph cluster_Session_12 {
color = black;
label = "Session_12";
 "Batch_12_0";
}
subgraph cluster_Session_13 {
color = black;
label = "Session_13";
 "Batch_13_0";
}
subgraph cluster_Session_14 {
color = black;
label = "Session_14";
 "Batch_14_0";
}
"Batch_0_0" -> "Batch_1_0";
"Batch_0_0" -> "Batch_1_0";
"Batch_1_0" -> "Batch_1_1";
"Batch_1_1" -> "Batch_1_2";
"Batch_1_2" -> "Batch_1_3";
"Batch_1_3" -> "Batch_1_4";
"Batch_1_4" -> "Batch_2_0";
"Batch_0_0" -> "Batch_2_0";
"Batch_1_4" -> "Batch_2_0";
"Batch_2_0" -> "Batch_2_1";
"Batch_2_1" -> "Batch_2_2";
"Batch_2_2" -> "Batch_2_3";
"Batch_2_3" -> "Batch_3_0";
"Batch_0_0" -> "Batch_3_0";
"Batch_1_4" -> "Batch_3_0";
"Batch_2_3" -> "Batch_3_0";
"Batch_3_0" -> "Batch_4_0";
"Batch_0_0" -> "Batch_4_0";
"Batch_1_4" -> "Batch_4_0";
"Batch_2_3" -> "Batch_4_0";
"Batch_3_0" -> "Batch_4_0";
"Batch_4_0" -> "Batch_5_0";
"Batch_0_0" -> "Batch_5_0";
"Batch_1_4" -> "Batch_5_0";
"Batch_2_3" -> "Batch_5_0";
"Batch_3_0" -> "Batch_5_0";
"Batch_5_0" -> "Batch_6_0";
"Batch_0_0" -> "Batch_6_0";
"Batch_1_4" -> "Batch_6_0";
"Batch_2_3" -> "Batch_6_0";
"Batch_3_0" -> "Batch_6_0";
"Batch_6_0" -> "Batch_7_0";
"Batch_0_0" -> "Batch_7_0";
"Batch_1_4" -> "Batch_7_0";
"Batch_2_3" -> "Batch_7_0";
"Batch_3_0" -> "Batch_7_0";
"Batch_4_0" -> "Batch_7_0";
"Batch_5_0" -> "Batch_7_0";
"Batch_6_0" -> "Batch_7_0";
"Batch_7_0" -> "Batch_8_0";
"Batch_0_0" -> "Batch_8_0";
"Batch_1_4" -> "Batch_8_0";
"Batch_2_3" -> "Batch_8_0";
"Batch_3_0" -> "Batch_8_0";
"Batch_4_0" -> "Batch_8_0";
"Batch_5_0" -> "Batch_8_0";
"Batch_6_0" -> "Batch_8_0";
"Batch_7_0" -> "Batch_8_0";
"Batch_8_0" -> "Batch_9_0";
"Batch_0_0" -> "Batch_9_0";
"Batch_1_4" -> "Batch_9_0";
"Batch_2_3" -> "Batch_9_0";
"Batch_3_0" -> "Batch_9_0";
"Batch_4_0" -> "Batch_9_0";
"Batch_5_0" -> "Batch_9_0";
"Batch_6_0" -> "Batch_9_0";
"Batch_7_0" -> "Batch_9_0";
"Batch_8_0" -> "Batch_9_0";
"Batch_9_0" -> "Batch_10_0";
"Batch_0_0" -> "Batch_10_0";
"Batch_1_4" -> "Batch_10_0";
"Batch_2_3" -> "Batch_10_0";
"Batch_3_0" -> "Batch_10_0";
"Batch_4_0" -> "Batch_10_0";
"Batch_5_0" -> "Batch_10_0";
"Batch_6_0" -> "Batch_10_0";
"Batch_7_0" -> "Batch_10_0";
"Batch_8_0" -> "Batch_10_0";
"Batch_9_0" -> "Batch_10_0";
"Batch_10_0" -> "Batch_11_0";
"Batch_0_0" -> "Batch_11_0";
"Batch_1_4" -> "Batch_11_0";
"Batch_2_3" -> "Batch_11_0";
"Batch_3_0" -> "Batch_11_0";
"Batch_4_0" -> "Batch_11_0";
"Batch_5_0" -> "Batch_11_0";
"Batch_6_0" -> "Batch_11_0";
"Batch_7_0" -> "Batch_11_0";
"Batch_8_0" -> "Batch_11_0";
"Batch_9_0" -> "Batch_11_0";
"Batch_10_0" -> "Batch_11_0";
"Batch_11_0" -> "Batch_12_0";
"Batch_0_0" -> "Batch_12_0";
"Batch_1_4" -> "Batch_12_0";
"Batch_2_3" -> "Batch_12_0";
"Batch_3_0" -> "Batch_12_0";
"Batch_4_0" -> "Batch_12_0";
"Batch_5_0" -> "Batch_12_0";
"Batch_6_0" -> "Batch_12_0";
"Batch_7_0" -> "Batch_12_0";
"Batch_8_0" -> "Batch_12_0";
"Batch_9_0" -> "Batch_12_0";
"Batch_10_0" -> "Batch_12_0";
"Batch_12_0" -> "Batch_13_0";
"Batch_0_0" -> "Batch_13_0";
"Batch_1_4" -> "Batch_13_0";
"Batch_2_3" -> "Batch_13_0";
"Batch_3_0" -> "Batch_13_0";
"Batch_4_0" -> "Batch_13_0";
"Batch_5_0" -> "Batch_13_0";
"Batch_6_0" -> "Batch_13_0";
"Batch_7_0" -> "Batch_13_0";
"Batch_8_0" -> "Batch_13_0";
"Batch_9_0" -> "Batch_13_0";
"Batch_10_0" -> "Batch_13_0";
"Batch_11_0" -> "Batch_13_0";
"Batch_12_0" -> "Batch_13_0";
"Batch_13_0" -> "Batch_14_0";
"Batch_0_0" -> "Batch_14_0";
"Batch_1_4" -> "Batch_14_0";
"Batch_2_3" -> "Batch_14_0";
"Batch_3_0" -> "Batch_14_0";
"Batch_4_0" -> "Batch_14_0";
"Batch_5_0" -> "Batch_14_0";
"Batch_6_0" -> "Batch_14_0";
"Batch_7_0" -> "Batch_14_0";
"Batch_8_0" -> "Batch_14_0";
"Batch_9_0" -> "Batch_14_0";
"Batch_10_0" -> "Batch_14_0";
"Batch_11_0" -> "Batch_14_0";
"Batch_12_0" -> "Batch_14_0";
}
Run Code Online (Sandbox Code Playgroud)

示例输出: 在此输入图像描述

Bla*_*ack 7

给定从在一个文件名为问题的示例点源test.dottred距离的GraphViz命令行工具工具(向图传递减少滤波器)它减少了与下面的命令行一个线性图表:

tred test.dot | dot -T png > test.png
Run Code Online (Sandbox Code Playgroud)

结果图片: