图表包,其中一些项目从上到下,其他项目从左到右

问题描述 投票:0回答:2

编辑:我正要提交时找到了答案。这篇文章讨论了不可见的边缘:Graphviz 从上到下和从左到右

我目前正在使用 python 包“diagrams”为我的项目构建流程图。不幸的是,由于从左到右或从上到下的所有方向,它会导致一些丑陋的显示(据我所知,无法混合两者)。

这是我的图表代码的片段:

from diagrams import Diagram, Cluster

from diagrams.generic.database import SQL
from diagrams.generic.place import Datacenter
from diagrams.generic.compute import Rack
from diagrams.generic.network import Subnet

from diagrams.aws.general import User


with Diagram('Sample', show=False, outformat='png', direction='LR'):
    database_1 = SQL('Database 1')

    database_2 = SQL('Database 2')

    database_3 = SQL('Database 3')

    server = Datacenter('Datacenter')

    human = User('Human Reviewer')

    with Cluster('Additional items to group separately', direction='TB'):
        process = Subnet('Connection')
        compute = Rack('Compute')
        compute_other = Rack('Compute Other')

    with Cluster('Files to group together'):
        database_4 = SQL('Database 4')
        database_5 = SQL('Database 5')
        database_6 = SQL('Database 6')
    [database_4, database_5, database_6] >> compute

    database_1 >> server
    database_2 >> server
    database_3 >> server

    server >> process >> compute >> compute_other >> human

它回来了

但所需的图像将是簇

'Files to group together'
水平分布以使图表更加紧凑的图像。请参阅此图了解所需的输出。

有没有一种方法可以水平对齐集群

'Files to group together'
,同时仍然让图表的其余部分从左到右流动?我想我只需要在集群中的项目之间创建不可见的边缘,但我似乎无法在 graphviz 中找到将边缘设置为不可见的选项(并且似乎没有独特的选项graphviz 中没有的图表)。

注意:我尝试了 Edge(color=None),但您仍然可以看到一个箭头,并且没有从 db4 到 db5 再到 db6 的流程,因此 Edge 只是尝试强制对齐

是否有更好的软件包可用于构建这些图表?

谢谢!

python graphviz diagram
2个回答
0
投票

搜索时找不到类似的帖子,但是AI大神看了我的帖子,并指出这篇帖子是置顶建议: Graphviz 从上到下和从左到右

在那篇文章中,用户提到了 Edge 的 graphviz 选项(style='invis')。我实现了它,而不是我在 Edge(color=None) 的尝试,并且按预期工作。


0
投票

你可以用代码发布你的答案吗?

© www.soinside.com 2019 - 2024. All rights reserved.