在我的代码中,
add_nodes_from()
A.add_nodes_from(["coyote", "wolf"])
add_edge()
A.add_edge(1,2)
constraint=False
将节点放置在同一水平标高上:
A.add_edge(previous_item, item, rank='same', constraint=False)
我写了一个函数:
def add_nodes_connected_by_edges(graph, items, rank_same):
"""
Adds nodes to graph, one node per string in items
:param graph: a pygraphviz graph
:param items: a list of strings
:param rank_same: boolean. True ranks nodes so they appear at same horizontal level
"""
previous_item = None
for item in items:
graph.add_node(item)
if previous_item is not None:
# Use constraint=False to keep rank same
# https://stackoverflow.com/questions/22756929/graphviz-make-edges-not-affecting-the-hierarchy-of-nodes
graph.add_edge(previous_item, item, rank='same', constraint=(not rank_same))
previous_item = item
graphvizzy
存储库显示了一个更完整的示例