gpt4 book ai didi

python - Pydot集群定位

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:21 25 4
gpt4 key购买 nike

如果有两个包含其他集群层次结构的集群。一切都非常酷!

我想垂直放置两个簇。尽管其他帖子建议如何垂直放置节点(而不是集群),但我无法使其适用于集群。

大小参数对我不起作用,但无论如何,这似乎都是错误的答案,因为我的 python 程序通常会设置一类可以是任何大小的图形。我只想将两个簇放在另一个簇的顶部,并且大小应该是任意的。

如果有一个简单的例子,我们将不胜感激。

最佳答案

我解决了这个问题。我有两个独立的集群,每个集群都包含子集群的层次结构并描绘为矩形。如果我将两个簇添加到我的图表中,它们会从左到右显示,但我希望它们一个在另一个之上。如果我向每个集群添加一个节点,则要使它们处于垂直方向。它们可以在样式修改器中隐藏,但我使用节点作为标签。通过在两个节点之间添加一条边,两个簇以最合理的方式调整自身方向,以最小化边长度,并且它们会垂直重新排列。

在下面的示例中,我创建了两个另外的封闭 block ,这可能不是必需的,因为您可以将一个节点添加到 cluster1,另一个节点添加到 cluster2,但是我发现封闭 block 使我的图表更加整洁。

举个例子;

#Assume cluster1 and cluser2 exist

#Create enclosing cluster box
enclosingBlock1=pydot.Cluster('eb1', label='label1',shape='rectangle')
enclosingBlock1.add_subgraph(cluster1)

# Add node to enclosing cluster
node1=pydot.Node('D1',label='Diagram1')
enclosingBlock1.add_node(node1)

#Create second enclosing block
enclosingBlock2=pydot.Cluster('eb2', label='label2',shape='rectangle')
enclosingBlock2.add_subgraph(cluster2)
# Add the node and create the joining edge
node2=pydot.Node('D2',label='Diagram2')
enclosingBlock2.add_node(node2)
edge = pydot.Edge(node1,node2)

graph.add_subgraph(enclosingBlock1)
graph.add_subgraph(enclosingBlock2)
graph.add_edge(edge)
graph.write('xmlSQL.png',prog = 'dot',format = 'png')

关于python - Pydot集群定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10943347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com