我已经得到了我想要的Graphviz布局和可视化我的图表。该图有122个边和123个节点。边缘有4种不同的类型,我希望它们在视觉上可以区分。但是我还没有决定什么是这样做的最好的方式,我想与表盘周围玩了一下。不幸的是,我没有看到任何类似边的“class”或“stylesheet”属性。我只能为每个边缘单独设置视觉属性(大量重复)。也许我错过了什么?是否可能有某种方式将边缘添加到4个不同的组中,然后对组进行设计,而不是单独设计每个边缘?的Graphviz:如何在同一样式分配到一组边缘?
21
A
回答
30
为了通过组样式边缘(或节点)而不是单独使用子图。
像这样:
digraph G {
node [style=filled,color="#5D8AA8", fillcolor="#5D8AA8"];
subgraph c1 {
edge [color="#004225", arrowsize="0.6", penwidth="1"];
"node 1" -> "node 3";
"node 5" -> "node 7";
"node 1" -> "node 2";
label = "";
}
subgraph c2 {
edge [color="#FBEC5D", arrowsize="1.2", penwidth="3"];
"node 2" -> "node 4";
"node 4" -> "node 6";
"node 3" -> "node 5";
"node 6" -> "node 8";
label = "";
}
begin -> "node 1";
start -> "node 2";
"node 1" -> "node 4"
"node 2" -> "node 6";
start [shape=diamond];}
所以,如果你把上面的代码在一个文件瓦特/“.DOT”扩展名;然后呈现在graphviz的,,你会看到不同类型的边,外观睿智。
一种类型是只是默认(颜色=黑色,厚度= 1等)。 - 即,这些边缘未分配给子图。
另外两种类型的边(一个薄的,深绿色基和厚,明亮的黄色组)基于分配两个子集群之一样式。
子图经常被用来在视觉上加亮一个节点集群(即,从在图中的节点的其余部分区分节点的特定连续“组”);然而,没有任何要求(正如你可以从我的例子中看到的那样),你选择通过赋值给一个给定的子图来选择样式的边缘,属于一个连续的“节点组”,你可以指定你希望赋值给的任何边一个给定的子图。)
给我,按组造型节点类似于定义一个类并将其分配到的div的HTML标记集合的HTML实践
12
虽然@豆豆的答案是正确的(使用子图指定风格相近的对象组),我相信我的例子是更好:
digraph G {
compound=true;
subgraph columns {
c0r0 -> c0r1;
c0r1 -> c0r2;
c1r0 -> c1r1;
c1r1 -> c1r2;
c2r0 -> c2r1;
c2r1 -> c2r2;
}
subgraph rows {
edge [color=red, constraint=false];
c0r0 -> c1r0;
c1r0 -> c2r0;
c0r1 -> c1r1;
c1r1 -> c2r1;
c0r2 -> c1r2;
c1r2 -> c2r2;
}
}
cat square-digraph.dot | dot -Tsvg -o square-digraph.svg
相关问题
- 1. GraphViz,分组相同的边缘
- 2. 从graphviz分组输出边缘
- 3. Graphviz如何控制边缘
- 4. 如何将边缘标签放置在graphviz的边缘
- 5. 如何使边缘在Graphviz中重叠?
- 6. Graphviz交叉边缘
- 7. 在graphviz中从节点到边缘绘制边缘
- 8. Graphviz隐藏的边缘
- 9. graphviz的联合边缘
- 10. 的Graphviz ---边标签太靠近另一个边缘
- 11. GraphVIZ边缘弯曲90度
- 12. Graphviz重叠边缘标签
- 13. GraphViz创建常规边缘
- 14. Graphviz:将边缘标签放在另一侧
- 15. Graphviz的边缘不可辨/边缘标签覆盖
- 16. 如何在帧边缘接触另一个边缘时获取该边缘?
- 17. 边缘样式对于树
- 18. 如何在graphviz中强制边缘的位置?
- 19. Graphviz Dot中奇怪的边缘位置
- 20. 奇怪的graphviz边缘重叠
- 21. 移动的Graphviz边缘闪开
- 22. 权以点(Graphviz的)左边缘
- 23. Graphviz - 节点之间的水平边缘
- 24. Graphviz,更改边缘的大小
- 25. Graphviz的边缘设置初始方向
- 26. graphviz:颜色方面的边缘
- 27. 在graphviz中将相同颜色的节点分组在一起
- 28. 如何使元素的边缘贴到CSS的另一个元素的边缘?
- 29. 如何在graphviz中使用锥形边缘
- 30. 如何在Graphviz中添加边缘标签?
我们如何设置子图的默认风格? – Pacerier 2014-07-16 19:48:50
不需要子图。在边缘样式声明下使用“edge [color = ... etc]”定义的所有边将使用该样式。 – Bousch 2015-08-19 10:18:58