Graphviz替代品?

vy3*_*y32 62 graphviz graph-visualization

我正在寻找GraphViz的替代品.我已经使用GraphViz十多年了,没关系,但是考虑到我的输入数据,布局并没有为我生成出版品质的图表.有时候我的数据真的很大而且很复杂,有时却不是,但GraphViz从来没有真正做出那些美丽的东西.

人们使用的其他图形可视化工具是什么?理想情况下,有一个使用GraphViz语法的输入文件.

这里举例说明我正在玩的输入文件:

digraph mdc {    
  size="4,8";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0PAN0-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0047-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0048-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0050-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0051-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0052-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0009-FOO";    
  "KJ16:76:A2:60:6E" -> "JUNK-0413-FOO";    
  "KJ16:76:A2:60:6E" -> "JUNK-0414-FOO";    
  "KJE0:D0:13:14:94" -> "GEORGE42-FRED";    
  "KJE0:D0:13:14:94" -> "MY5-30-FRED";    
  "KJ50:04:EE:6C:F9" -> "PSPAN-036-FRED";    
  "KJ50:04:EE:6C:F9" -> "GEORGE02-FRED";    
  "KJ50:04:EE:6C:F9" -> "GEORGE04-FRED";    
  "KJ1B:B9:9B:D5:BB" -> "JUNK-0047-FOO";    
  "KJ1B:B9:9B:D5:BB" -> "JUNK-0048-FOO";    
  "KJ05:5F:EF:14:PAN" -> "thPAN-PAN-FRED";    
  "KJ05:5F:EF:14:PAN" -> "cn20-PAN-FRED";    
  "KJ15:F2-KIM-:E5YF" -> "thPAN-PAN-FRED";    
  "KJ15:F2-KIM-:E5YF" -> "cn20-PAN-FRED";    
  "KJ0E:90:D5:E6:5E" -> "JUNK-0051-FOO";    
  "KJ0E:90:D5:E6:5E" -> "JUNK-0009-FOO";    
  "KJ1E:90:DE:F1:07" -> "JUNK-0051-FOO";    
  "KJ1E:90:DE:F1:07" -> "JUNK-0009-FOO";    
  "KJ1E:90:D5:EE:5E" -> "JUNK-0051-FOO";    
  "KJ1E:90:D5:EE:5E" -> "JUNK-0047-FOO";    
  "KJ1E:90:D5:EE:5E" -> "JUNK-0009-FOO";    
  "KJ04:ED:66:C7:19" -> "JUNK-0562-FOO";    
  "KJ04:ED:66:C7:19" -> "JUNK-0561-FOO";    
  "KJ1B:B9:9C-PET-67" -> "JUNK-0047-FOO";    
  "KJ1B:B9:9C-PET-67" -> "JUNK-0049-FOO";    
  "PAN:KJ5E:7F:FF:FA" -> "JUNK-0PAN4-FOO";    
  "PAN:KJ5E:7F:FF:FA" -> "PSPAN-021-FRED";    
  "PAN:KJ5E:7F:FF:FA" -> "GEORGE38-FRED";    
  "PAN:KJ5E:7F:FF:FA" -> "JUNK-0095-FOO";    
  "PAN:KJ5E:7F:FF:FA" -> "JUNK-PAN18-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0PAN0-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0051-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0052-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0009-FOO";    
  "KJ26:18:BD:D9:E9" -> "JUNK-0562-FOO";    
  "KJ26:18:BD:D9:E9" -> "JUNK-0561-FOO";    
  "KJD0:B7:69:0A-VET" -> "cn4-06-FRED";    
  "KJD0:B7:69:0A-VET" -> "1039-FRED";    
 "KJ50:04:EE:6C:F9" [fontsize=96,shape=oval]    
 "KJ1E:90:DE:F1:07" [fontsize=96,shape=oval]    
 "KJ05:5F:EF:14:PAN" [fontsize=96,shape=oval]    
 "KJ26:18:BD:D9:E9" [fontsize=96,shape=oval]    
 "KJ1B:B9:9B:D5:BB" [fontsize=96,shape=oval]    
 "KJE0:D0:13:14:94" [fontsize=96,shape=oval]    
 "KJ0E:90:D5:E6:5E" [fontsize=96,shape=oval]    
 "KJ1E:A6:PAN:9E:3A" [fontsize=96,shape=oval]    
 "KJ1E:90:D5:EE:5E" [fontsize=96,shape=oval]    
 "PAN:KJ5E:7F:FF:FA" [fontsize=96,shape=oval]    
 "KJ1B:B9:9B:D3:61" [fontsize=96,shape=oval]    
 "KJ1B:B9:9C-PET-67" [fontsize=96,shape=oval]    
 "KJ15:F2-KIM-:E5YF" [fontsize=96,shape=oval]    
 "KJD0:B7:69:0A-VET" [fontsize=96,shape=oval]    
 "KJ04:ED:66:C7:19" [fontsize=96,shape=oval]    
 "KJ16:76:A2:60:6E" [fontsize=96,shape=oval]    
 "JUNK-0009-FOO" [fontsize=96,shape=box3d]    
 "GEORGE38-FRED" [fontsize=96,shape=box3d]    
 "JUNK-0413-FOO" [fontsize=96,shape=box3d]    
 "JUNK-0561-FOO" [fontsize=96,shape=box3d]    
 "JUNK-0050-FOO" [fontsize=96,shape=box3d]    
 "cn20-PAN-FRED" [fontsize=96,shape=box3d]    
 "JUNK-PAN18-FOO" [fontsize=96,shape=box3d]    
 "1039-FRED" [fontsize=96,shape=box3d]    
 "JUNK-0095-FOO" [fontsize=96,shape=box3d]    
 "PSPAN-021-FRED" [fontsize=96,shape=box3d]    
 "JUNK-0048-FOO" [fontsize=96,shape=box3d]    
 "JUNK-0052-FOO" [fontsize=96,shape=box3d]    
 "GEORGE42-FRED" [fontsize=96,shape=box3d]    
 "JUNK-0049-FOO" [fontsize=96,shape=box3d]    
 "GEORGE04-FRED" [fontsize=96,shape=box3d]    
 "cn4-06-FRED" [fontsize=96,shape=box3d]    
 "thPAN-PAN-FRED" [fontsize=96,shape=box3d]    
 "GEORGE02-FRED" [fontsize=96,shape=box3d]    
 "JUNK-0PAN0-FOO" [fontsize=96,shape=box3d]    
 "MY5-30-FRED" [fontsize=96,shape=box3d]    
 "JUNK-0047-FOO" [fontsize=96,shape=box3d]    
 "JUNK-0562-FOO" [fontsize=96,shape=box3d]    
 "JUNK-0PAN4-FOO" [fontsize=96,shape=box3d]    
 "JUNK-0051-FOO" [fontsize=96,shape=box3d]    
 "PSPAN-036-FRED" [fontsize=96,shape=box3d]    
 "JUNK-0414-FOO" [fontsize=96,shape=box3d]    
}    
Run Code Online (Sandbox Code Playgroud)

(所有这些fontsize=96都是我徒劳地尝试graphviz使字体更具可读性,但显然它不起作用.)

Mer*_*glu 34

Gephi是一个非常好的开源图形可视化软件.它使用像GraphViz这样的点语言.

  • Gephi很光滑,但遗憾的是它不支持dot中的子图(以及其他一些功能.来自[Gephi docs](https://gephi.org/users/supported-graph-formats/graphviz-dot-format/) :"Gephi目前不提供对DOT格式的完全支持.不支持子图,也不支持自定义属性或大小.如果存在,则仅导入标签和颜色.支持定向和无向图." (9认同)

mar*_*pet 23

什么不喜欢?

我个人不会使用box3d,我选择的颜色可能会伤害你的眼睛......

(完整尺寸图片:http://i.stack.imgur.com/MTe6n.png)

graphviz输出

编辑:

这是修改后的点代码 - 我重新整理了一下:

digraph {
size="11,11";
layout=neato;
overlap=false;
splines=true;
pack=true;
start="random";
sep=0.1;

edge [len=2];
node[shape=oval,style=filled,fillcolor="#DCA80A"];

 "KJ50:04:EE:6C:F9"
 "KJ1E:90:DE:F1:07"
 "KJ05:5F:EF:14:PAN"
 "KJ26:18:BD:D9:E9"
 "KJ1B:B9:9B:D5:BB"
 "KJE0:D0:13:14:94"
 "KJ0E:90:D5:E6:5E"
 "KJ1E:A6:PAN:9E:3A"
 "KJ1E:90:D5:EE:5E"
 "PAN:KJ5E:7F:FF:FA"
 "KJ1B:B9:9B:D3:61"
 "KJ1B:B9:9C-PET-67"
 "KJ15:F2-KIM-:E5YF"
 "KJD0:B7:69:0A-VET"
 "KJ04:ED:66:C7:19"
 "KJ16:76:A2:60:6E"

node[shape=box3d,style=filled,fillcolor="#B1C3D4"];
 "JUNK-0009-FOO"
 "GEORGE38-FRED"
 "JUNK-0413-FOO"
 "JUNK-0561-FOO"
 "JUNK-0050-FOO"
 "cn20-PAN-FRED"
 "JUNK-PAN18-FOO"
 "1039-FRED"
 "JUNK-0095-FOO"
 "PSPAN-021-FRED"
 "JUNK-0048-FOO"
 "JUNK-0052-FOO"
 "GEORGE42-FRED"
 "JUNK-0049-FOO"
 "GEORGE04-FRED"
 "cn4-06-FRED"
 "thPAN-PAN-FRED"
 "GEORGE02-FRED"
 "JUNK-0PAN0-FOO"
 "MY5-30-FRED"
 "JUNK-0047-FOO"
 "JUNK-0562-FOO"
 "JUNK-0PAN4-FOO"
 "JUNK-0051-FOO"
 "PSPAN-036-FRED"
 "JUNK-0414-FOO"

  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0PAN0-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0047-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0048-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0050-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0051-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0052-FOO";    
  "KJ1E:A6:PAN:9E:3A" -> "JUNK-0009-FOO";    
  "KJ16:76:A2:60:6E" -> "JUNK-0413-FOO";    
  "KJ16:76:A2:60:6E" -> "JUNK-0414-FOO";    
  "KJE0:D0:13:14:94" -> "GEORGE42-FRED";    
  "KJE0:D0:13:14:94" -> "MY5-30-FRED";    
  "KJ50:04:EE:6C:F9" -> "PSPAN-036-FRED";    
  "KJ50:04:EE:6C:F9" -> "GEORGE02-FRED";    
  "KJ50:04:EE:6C:F9" -> "GEORGE04-FRED";    
  "KJ1B:B9:9B:D5:BB" -> "JUNK-0047-FOO";    
  "KJ1B:B9:9B:D5:BB" -> "JUNK-0048-FOO";    
  "KJ05:5F:EF:14:PAN" -> "thPAN-PAN-FRED";    
  "KJ05:5F:EF:14:PAN" -> "cn20-PAN-FRED";    
  "KJ15:F2-KIM-:E5YF" -> "thPAN-PAN-FRED";    
  "KJ15:F2-KIM-:E5YF" -> "cn20-PAN-FRED";    
  "KJ0E:90:D5:E6:5E" -> "JUNK-0051-FOO";    
  "KJ0E:90:D5:E6:5E" -> "JUNK-0009-FOO";    
  "KJ1E:90:DE:F1:07" -> "JUNK-0051-FOO";    
  "KJ1E:90:DE:F1:07" -> "JUNK-0009-FOO";    
  "KJ1E:90:D5:EE:5E" -> "JUNK-0051-FOO";    
  "KJ1E:90:D5:EE:5E" -> "JUNK-0047-FOO";    
  "KJ1E:90:D5:EE:5E" -> "JUNK-0009-FOO";    
  "KJ04:ED:66:C7:19" -> "JUNK-0562-FOO";    
  "KJ04:ED:66:C7:19" -> "JUNK-0561-FOO";    
  "KJ1B:B9:9C-PET-67" -> "JUNK-0047-FOO";    
  "KJ1B:B9:9C-PET-67" -> "JUNK-0049-FOO";    
  "PAN:KJ5E:7F:FF:FA" -> "JUNK-0PAN4-FOO";    
  "PAN:KJ5E:7F:FF:FA" -> "PSPAN-021-FRED";    
  "PAN:KJ5E:7F:FF:FA" -> "GEORGE38-FRED";    
  "PAN:KJ5E:7F:FF:FA" -> "JUNK-0095-FOO";    
  "PAN:KJ5E:7F:FF:FA" -> "JUNK-PAN18-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0PAN0-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0051-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0052-FOO";    
  "KJ1B:B9:9B:D3:61" -> "JUNK-0009-FOO";    
  "KJ26:18:BD:D9:E9" -> "JUNK-0562-FOO";    
  "KJ26:18:BD:D9:E9" -> "JUNK-0561-FOO";    
  "KJD0:B7:69:0A-VET" -> "cn4-06-FRED";    
  "KJD0:B7:69:0A-VET" -> "1039-FRED";    
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看和修改它:http://graph.gafol.net/dLQGPHJRc - 此站点使用了很好的字体和fontsize预设.

请注意,我添加了start=random,因此每次创建图表时布局可能会有所不同.

  • 它有效,但布局并没有真正解释发生了什么.在左侧中央留下大量重叠的线条.是的,图表是布局的.但它真的能帮助你理解发生了什么吗?--- PS --- NICE COLORS! (3认同)
  • 实际上我认为图表至少可以直观地解释三件事:有两种类型的节点.有8个不同的节点组彼此之间没有连接.有7个小组,有一个或两个"椭圆形"节点,还有一个较大的组有几个"椭圆形"节点.我同意大组可以更好地布局,减少重叠边缘 - 尝试编辑帖子中的链接,rand参数应该每次都产生不同的布局,有些比其他更好. (2认同)
  • 来自我的+1; 我完全同意 - 我不知道任何商业或开源,接近graphviz,虽然你必须正确使用它,我认为你的答案很好地强调. (2认同)