gpt4 book ai didi

python - 为什么我的代码无法绘制有向图的箭头?

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

我已经使用 networkx.DiGraph() 生成了一个有向图,但是当我尝试绘制它时,箭头没有出现。

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_node(0, node_color="red")

G.add_node(1, node_color="orange")
G.add_node(2, node_color="orange")
G.add_node(3, node_color="orange")

G.add_node(4, node_color="yellow")
G.add_node(5, node_color="yellow")
G.add_node(6, node_color="yellow")
G.add_node(7, node_color="yellow")

G.add_edges_from([(0, 1),
(0, 2),
(0, 3),
(1, 4),
(2, 5),
(3, 6),
(3, 7)])

fig=plt.gcf()
fig.set_size_inches(100, 100)
ax=plt.gca()
pos=nx.circular_layout(G, center=(0, 0))
nx.draw_networkx_nodes(G, pos, cmap=plt.get_cmap('jet'), node_size = 5000)
nx.draw_networkx_edges(G, pos, arrows=True, arrowstyle = '-|>')

我期望 plt 带有这样的箭头 Expected

但是我的结果是这样的,边缘没有箭头: My result

最佳答案

你的节点大小是5000(单位是平方点,所以我相信你的圆圈大约是一英寸宽)。这可能是需要的,因为您的地 block 为 100 英寸 x 100 英寸(远远超过 2 米 x 2 米)

默认的箭头大小是 10(我相信箭头使用的单位意味着它大约有 4 点长和 2 点宽,或者大约 0.06 x 0.03 英寸),相比之下非常小。

您必须增加箭头大小或减小节点大小和图形大小。这是节点、箭头和图形的默认大小:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_node(0, node_color="red")

G.add_node(1, node_color="orange")
G.add_node(2, node_color="orange")
G.add_node(3, node_color="orange")

G.add_node(4, node_color="yellow")
G.add_node(5, node_color="yellow")
G.add_node(6, node_color="yellow")
G.add_node(7, node_color="yellow")

G.add_edges_from([(0, 1),
(0, 2),
(0, 3),
(1, 4),
(2, 5),
(3, 6),
(3, 7)])

fig=plt.gcf()
ax=plt.gca()
pos=nx.circular_layout(G, center=(0, 0))
nx.draw_networkx_nodes(G, pos, cmap=plt.get_cmap('jet'))
nx.draw_networkx_edges(G, pos, arrows=True, arrowstyle = '-|>')

enter image description here

关于python - 为什么我的代码无法绘制有向图的箭头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57527392/

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