使图形变得友好/可读(500 个节点,1600 个边)
我决定学习 DOT 语言,它看起来棒极了。我决定制作一个项目来为 RPM 构建制作图表。我扫描了所有构建 RPM 包的方法,并添加了有关所需补丁和导入的信息。目前我的图有不到 500 个节点和超过 1600 个边,并且大小应该稳定 +/- 50-100 个节点/边。
这是我现在所拥有的:
- (sfdp) http://imageshack.us/ photo/my-images/638/deptree1.jpg/
- (点)[片段] http://imageshack.us/photo/my-images/52/deptree2.jpg/
- (twopi) http://imageshack.us/photo/my-images/28/deptree3.jpg/
前两个比最后一个更具可读性。
详细信息:
- 包装采用黑框盒子。
- 补丁位于橙色边框框+橙色边缘中。
- 进口是在红色边框框+红色边缘中。
- 没有单个根包节点。我们可以说有几个顶级(根)包节点,4-10 个节点包(节点),它们导入大部分包。
- 有独立的包(节点),没有依赖项,也没有依赖于它们。
- 补丁只能(大部分)由单个包节点使用。
- 并非所有包节点都有补丁。我想说一小部分包节点有它们。
- 导入文件可以包含在包节点的很大一部分中(例如,所有包节点的1/3)。
- 我有rankdir =“TB”(从上到下)
- 我增加了边缘的重量(包 - >补丁)。这应该意味着补丁节点更接近其包节点。
- 尽量减少覆盖节点的边数会很好。这使得图表变得不可读。
在这种情况下,对图形布局配置和算法使用有什么建议吗?
I have decided to learn DOT language, which looks fantastic. I decided to make a project for making a graph for RPM building. I scan all the recipes to build RPM packages and also add information about required patches and imports. Currently my graph has under 500 nodes and more than 1600 edges, and the size should be stable +/- 50-100 nodes/edges from time to time.
Here is what I have now:
- (sfdp) http://imageshack.us/photo/my-images/638/deptree1.jpg/
- (dot) [fragment] http://imageshack.us/photo/my-images/52/deptree2.jpg/
- (twopi) http://imageshack.us/photo/my-images/28/deptree3.jpg/
The first two are a bit more readable then the last one.
Details:
- Packages are in black bordered boxes.
- Patches are in orange bordered boxes + orange edges.
- Imports are in red bordered boxes + red edges.
- There are no single root package node. We could say there are several top level (root) package nodes, 4-10 nodes packages (nodes), which import most of the packages.
- There are standalone package (nodes), not dependencies and no on depends upon them.
- Patches can be only (mostly) used by single package node.
- Not all packages nodes has patches. I would say smaller part of packages nodes have them.
- Import files can be included in a huge part of package nodes (e.g., 1/3 of all package nodes).
- I have rankdir="TB" (Top-Bottom)
- I have increased the weight on the edges (package -> patch). Which should mean that patch nodes are closer to their package node.
- It would be nice to minimize number of edges overlaying nodes. This makes graph a lot unreadable.
Any suggestions on graph layout configuration and algorithm usage in this case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
令人印象深刻的图表!
会发生什么
哦,我也从来没有设法阻止 GraphViz 在节点上绘制边缘......
Impressive graph!
I would try what happens if you
Oh, and I've never managed to keep GraphViz from plotting edges over nodes either...