将额外的参数传递给 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
参数,我会得到:
我想向我正在做的 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
参数,我会得到: