Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的代码可以';t绘制有向图的箭头?_Python_Matplotlib_Plot_Networkx_Arrows - Fatal编程技术网

Python 为什么我的代码可以';t绘制有向图的箭头?

Python 为什么我的代码可以';t绘制有向图的箭头?,python,matplotlib,plot,networkx,arrows,Python,Matplotlib,Plot,Networkx,Arrows,我已经用networkx.DiGraph()生成了一个有向图,但是当我试图绘制它时,箭头没有出现 将networkx导入为nx 将matplotlib.pyplot作为plt导入 G=nx.DiGraph() G.添加节点(0,节点颜色=“红色”) G.添加节点(1,节点颜色=“橙色”) G.添加节点(2,节点颜色=“橙色”) G.添加节点(3,节点颜色=“橙色”) G.添加节点(4,节点颜色=“黄色”) G.添加节点(5,节点颜色=“黄色”) G.添加节点(6,节点颜色=“黄色”) G.添加节

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

将networkx导入为nx
将matplotlib.pyplot作为plt导入
G=nx.DiGraph()
G.添加节点(0,节点颜色=“红色”)
G.添加节点(1,节点颜色=“橙色”)
G.添加节点(2,节点颜色=“橙色”)
G.添加节点(3,节点颜色=“橙色”)
G.添加节点(4,节点颜色=“黄色”)
G.添加节点(5,节点颜色=“黄色”)
G.添加节点(6,节点颜色=“黄色”)
G.添加节点(7,节点颜色=“黄色”)
G.从([(0,1)中添加边,
(0, 2),
(0, 3),
(1, 4),
(2, 5),
(3, 6),
(3, 7)])
图=plt.gcf()
图设置尺寸英寸(100100)
ax=plt.gca()
位置=nx.圆形布局(G,中心=(0,0))
nx.draw\u networkx\u节点(G,pos,cmap=plt.get\u cmap('jet'),节点大小=5000)
nx.绘制网络x边(G,pos,arrows=True,arrowstyle='-|>'))
我希望有一个像这样的箭头plt

但我的结果是,边缘没有箭头:

您的节点大小是5000(单位是平方点,所以我相信您的圆大约有一英寸宽)。这可能是需要的,因为您的绘图是100英寸乘100英寸(远远超过2米乘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 = '-|>')

您的节点大小是5000(单位是平方点,所以我相信您的圆大约有一英寸宽)。这可能是需要的,因为您的绘图是100英寸乘100英寸(远远超过2米乘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 = '-|>')

当我运行您提供的代码时,我遇到了多个弃用错误,并且它实际上没有在我的端生成任何绘图。请用一种快速的方法编辑此问题,以便我们复制您的问题,这样我们可以帮助您找到错误。代码运行时没有任何问题(使用从github获取的最新版本)。箭头在那里,它们很小。如果您用相应的行替换
nx.draw_networkx_edges(G,pos,arrows=True,arrowstyle='-|>',width=10,arrowsize=50)
,您可以看到它们。@Hampus Larsson,我正在使用最新的jupyter笔记本电脑、python 3.7.3、最新的matplotlib和最新的networkx。@Paul Broderson非常感谢您。是的,箭头在那里,但太小了……当我运行你提供的代码时,我遇到了多个弃用错误,而且它并没有在我这边生成任何绘图。请用一种快速的方法编辑此问题,以便我们复制您的问题,这样我们可以帮助您找到错误。代码运行时没有任何问题(使用从github获取的最新版本)。箭头在那里,它们很小。如果您用相应的行替换
nx.draw_networkx_edges(G,pos,arrows=True,arrowstyle='-|>',width=10,arrowsize=50)
,您可以看到它们。@Hampus Larsson,我正在使用最新的jupyter笔记本电脑、python 3.7.3、最新的matplotlib和最新的networkx。@Paul Broderson非常感谢您。是的,箭头在那里,但是太小了。。。。。。