将额外的参数传递给 networkx graphviz_layout 不起作用

Passing extra arguments to networkx graphviz_layout not working

我想向我正在做的 graphviz_layout() 传递一个额外的参数,但它没有做任何事情。我也试过传递其他参数,但同样的问题。

它正确地识别了它,因为如果我将我传递的参数更改为无意义的东西,我会得到一个错误。

我指的是这个文档:https://graphviz.org/doc/info/attrs.html#d:rankdir

from networkx.drawing.nx_agraph import graphviz_layout

G = model.block_tree.tree
pos = graphviz_layout(G, prog='dot', root=0, args='-Grankdir="LR"')

plt.title(r"Blockchain with Selfish Mining ($\alpha$ = {})".format(alpha))
nx.draw_networkx_nodes(G, pos, node_color=color_vector, node_shape='s', node_size=300)
nx.draw_networkx_edges(G, pos, edgelist=G.edges(), arrows=True)
nx.draw_networkx_labels(G, pos, font_size=10, font_color="white")
plt.show()

有谁知道它为什么不起作用?

这是我制作的图表。我希望它旋转,所以它是水平的,但它不是...

有人知道为什么吗?我会非常感激。提前致谢!

PS: 有一些相关的帖子,但是 none 对我有用...

您提供的 rankdir 参数与 'root' 参数之间存在冲突。如果你删除后者,它应该尊重你的顺序。

因为没有你的数据,我做了一个简单的例子:

import matplotlib.pyplot as plt
from networkx.drawing.nx_agraph import graphviz_layout
import networkx as nx

G = nx.Graph()

G.add_nodes_from([0, 1])
G.add_edge(0, 1)
pos = graphviz_layout(G, prog='dot', root=0, args='-Grankdir="LR"')

nx.draw_networkx_nodes(G, pos, node_shape='s', node_size=300)
nx.draw_networkx_edges(G, pos, edgelist=G.edges(), arrows=True)
nx.draw_networkx_labels(G, pos, font_size=10, font_color="white")
plt.show()

这会产生以下输出:

但是如果我只是删除 root=0 参数,我会得到: