如何在python中使用pydot附加2个图形(graph1和graph2)

如何在python中使用pydot附加2个图形(graph1和graph2),python,pydot,Python,Pydot,我用以下代码生成一个pydot图 graph2 = pydot.Dot(graph_type='digraph') C = pydot.Node("C", style="filled", fillcolor="green") D = pydot.Node("D", style="filled", fillcolor="blue") graph2.add_node(C) graph2.add_node(D) graph2.add_edge(pydot.Edge(C,D)) graph2.write

我用以下代码生成一个pydot图

graph2 = pydot.Dot(graph_type='digraph')
C = pydot.Node("C", style="filled", fillcolor="green")
D = pydot.Node("D", style="filled", fillcolor="blue")
graph2.add_node(C)
graph2.add_node(D)
graph2.add_edge(pydot.Edge(C,D))
graph2.write_png('graph2.png')
graph1=pydot.Dot(graph\u type='digraph')
A=pydot.Node(“A”,style=“filled”,fillcolor=“green”)
B=pydot.Node(“B”,style=“filled”,fillcolor=“blue”)
图1.添加节点(A)
图1.添加节点(B)
图1.添加_边(pydot.边(A,B))
graph1.write_png('graph1.png'))

我的输出是

我用下面的代码生成另一个pydot图

graph2 = pydot.Dot(graph_type='digraph')
C = pydot.Node("C", style="filled", fillcolor="green")
D = pydot.Node("D", style="filled", fillcolor="blue")
graph2.add_node(C)
graph2.add_node(D)
graph2.add_edge(pydot.Edge(C,D))
graph2.write_png('graph2.png')
我的输出如下

我的要求是如何合并这两个图(图1和图2)? 合并为后的预期输出

我尝试使用以下代码,但它不起作用

graph3 = pydot.Dot(graph_type='digraph')
graph1_leaf = pydot.Node(graph1.get_node(B), style="filled", 
fillcolor="green")
graph2_root = pydot.Node(graph2.get_node(C), style="filled", 
fillcolor="green")

graph3.add_node(graph1_leaf)
graph3.add_node(graph2_root)
graph3.add_edge(pydot.Edge(graph1_leaf,graph2_root))
graph3.write_png('graph3.png')

请指导我在python中使用pydot合并这两个图形。。提前感谢。

我找不到描述连接两个图形的文档。通常的做法似乎是连接两个子图(簇)

下面是一个答案,说明了它是如何完成的:

另一个有用的答案是:

更新,已编辑问题的答案: 代码中的一些问题:

  • graph1.get_节点(B)返回节点列表
  • 仅添加用于连接图形的节点和边,而需要所有其他节点和边
  • 此代码应返回您想要的结果:

    graph3 = pydot.Dot(graph_type='digraph')
    for node in graph1.get_nodes():
        graph3.add_node(node)
    for node in graph2.get_nodes():
        graph3.add_node(node)
    for edge in graph1.get_edges():
        graph3.add_edge(edge)
    for edge in graph2.get_edges():
        graph3.add_edge(edge)
    node_graph1 = graph1.get_node('B')[0]    
    node_graph2 = graph2.get_node('C')[0]
    graph3.add_edge(pydot.Edge(node_graph1,node_graph2))
    
    graph3.write_png('/tmp/graph3.png')
    

    希望能有所帮助。

    谢谢您的回复。。根据你的评论,我修改了我的问题。。请检查我修改过的问题并指导我。。谢谢..你的代码完全符合我的预期。。非常感谢,先生。。