Graphviz Dot,混合有向和无向

Posted

技术标签:

【中文标题】Graphviz Dot,混合有向和无向【英文标题】:Graphviz Dot, mix directed and undirected 【发布时间】:2012-10-25 13:49:40 【问题描述】:

对于我的应用程序,我需要同时(在同一张图上)表示两种关系:一种是对称的,另一种不是。

目标:

理想情况下,这两种关系应导致边缘具有不同的颜色; 对于对称关系,我不希望有双边;

有没有办法用 dot 做到这一点?

【问题讨论】:

【参考方案1】:
digraph 

    A; B; C

    subgraph Rel1 
        edge [dir=none, color=red]
        A -> B -> C -> A
    

    subgraph Rel2 
        edge [color=blue]

        B -> C
        C -> A
    


【讨论】:

有人知道将 gigraph 与 graph 结合的更简单的解决方案吗? @user1742529 不确定你的意思,这里没有发生这样的组合。可能你对“子图”这个词感到困惑;这只是基本的划分,也就是说这些线应该是蓝色的,那些线应该是橙色的。 @Frungi,对不起。我的意思是:将“digraph”与“graph”结合起来的更简单的解决方案? (graphviz.readthedocs.io/en/stable/api.html#graphviz.Digraph)【参考方案2】:

您可以将dir=none 作为边属性传递给无向图连接:

digraph 

    A; B; C
    
    A -> B
    B -> C
    C -> A [dir=none]


【讨论】:

以上是关于Graphviz Dot,混合有向和无向的主要内容,如果未能解决你的问题,请参考以下文章

Graphviz使用简介(中文乱码的问题)

pydot 和 graphviz 错误:无法导入 dot_parser,无法加载 dot 文件

使用 pydot 在 Graphviz 中垂直放置节点

dot-- 资源汇总

运维流程系统

如何将文本文件自动转换为 graphviz dot 文件?