Graphviz Alternatives?
I'm looking for alternatives to GraphViz. I've been using GraphViz for more than a decade and it's okay, but the layouts are just not producing publication-quality graphs for me given my input data. Sometimes my data is really big and complex, and sometimes it isn't, but GraphViz never really makes stuff that's beautiful.
What other graph visualization tools are people using? Ideally there's one that uses the GraphViz syntax for input file.
Here for example is an input file I'm playing with:
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]
}
(All of the fontsize=96
are my vain attempt to get graphviz
to make the font more readable, but apparently it doesn't work.)
What's there not to like?
I personally wouldn't use box3d, and my choice of colors probably hurts your eyes...
(full size image: http://i.stack.imgur.com/MTe6n.png )
EDIT:
Here's the modified dot code - I reorganized it a little bit:
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";
}
You can see and modify it here: http://graph.gafol.net/dLQGPHJRc - this site uses nice presets for fonts and fontsize.
Please note that I added start=random
, therefore the layout may be different every time you create the graph.
Gephi is an amazingly good, open source graph visualization software. It uses dot language like GraphViz.
참고URL : https://stackoverflow.com/questions/4811124/graphviz-alternatives
'program tip' 카테고리의 다른 글
`typeid` 코드에서`? :`의 이상한 사용 (0) | 2020.12.13 |
---|---|
두 배열 사이에서 고유 한 요소를 찾는 더 빠른 알고리즘? (0) | 2020.12.13 |
간헐적 인 SQL 시간 초과 오류를 해결하는 방법 (0) | 2020.12.13 |
프로그래밍 방식으로 Amazon을 구매 하시겠습니까? (0) | 2020.12.13 |
JavaScript의 '실행 컨텍스트'는 정확히 무엇입니까? (0) | 2020.12.13 |