草庐IT

draw_networkx_edges

全部标签

python - 更改 networkx 多图中的边属性

在多重图中,每次调用*add_edge(a,b,weight=1)*都会在节点a和b之间添加一条新边。构建图时,是否可以在再次找到a和b时修改此权重。现在我要检查(a,b)或(b,a)是否连接,然后必须删除边缘,并添加一个新边缘。在我看来,我应该能够简单地更新权重。注意:我确实需要多图,因为我在节点之间使用不同类型的边(使用键区分) 最佳答案 Multigraph.add_edge文档表明您应该使用key参数来唯一标识多图中的边。这是一个例子:>>>importnetworkxasnx>>>G=nx.MultiGraph()>>>G

python - Networkx - 最短路径长度

我正在使用networkx来管理由50k节点组成的大型网络图。我想计算一组特定节点之间的最短路径长度,比如N。为此,我使用了nx.shortest_path_length函数。在N的某些节点中可能没有路径,因此networkx正在启动和停止我的程序。有什么方法可以不出错地运行这个程序吗?并告诉shortest_path_length返回某个最大值?代码只是在循环中使用nx.shortest_path_length(G,i,j)。错误如下raisenx.NetworkXNoPath("%s和%s之间没有路径。"%(source,target))networkx.exception.Net

python - 使用 Networkx (Python) 进行图形遍历

我正在尝试使用Networkx来管理依赖关系图。假设我有这个图表,每个字母代表一个服务器>>>G=nx.Graph()>>>G.add_edge("A","B")>>>G.add_edge("A","H")>>>G.add_edge("H","C")>>>G.add_edge("B","C")>>>G.add_edge("B","D")A/\HB//\CCD所以在这里我们可以看到,在启动A之前,我们需要启动H和B,要启动H,我们需要启动C,然后启动B,我们需要启动C和D通过摆弄Networkx,我发现我可以通过进行dfs遍历来获得它printnx.dfs_successors(G,"A

python - 在 NetworkX 中无法将图形保存为 jpg 或 png 文件

我在NetworkX中有一个图表,其中包含一些信息。图表显示后,我想将其保存为jpg或png文件。我使用了matplotlib函数savefig但是当图像被保存时,它不包含任何东西。它只是一个白色图像。这是我写的示例代码:importnetworkxasnximportmatplotlib.pyplotaspltfig=plt.figure(figsize=(12,12))ax=plt.subplot(111)ax.set_title('Graph-Shapes',fontsize=10)G=nx.DiGraph()G.add_node('shape1',level=1)G.add_n

python - 使用 networkx 在两个节点之间绘制多条边

我需要绘制一个在两个节点之间具有多条边(具有不同权重)的有向图。也就是说,我有节点A和B以及长度为2的边(A,B)和长度为3的边(B,A)。我已经尝试过使用G=nx.Digraph和G=nx.Multidigraph。当我绘制它时,我只能看到一条边和一个标签。有什么办法吗? 最佳答案 对上述回复的改进是添加connectionstyle到nx.draw,这允许在图中看到两条平行线:importnetworkxasnximportmatplotlib.pyplotaspltG=nx.DiGraph()#orG=nx.MultiDiGr

python - 将布局从 networkx 转移到 cytoscape

我想使用networkx为图形生成布局。是否可以将此布局转移到cytoscape把它画在那里?我试着简单地写一个图作为importnetworkxasnxG=nx.Graph()G.add_edge(0,1,weight=.1)G.add_edge(2,1,weight=.2)nx.write_gml(G,'g.gml')nx.write_graphml(G,'g.xml')但这些都不会在cytoscape中读取。我不确定如何以可以包含位置的格式传输图形。 最佳答案 您的g.xmlGraphML文件看起来不错,并且可以为我加载到Cy

python - Pillow :使用 Draw.rectangle 的奇怪行为

我正在使用Pillow在for循环中绘制矩形。这在我的台式电脑上有效,但在我的笔记本电脑上抛出了一个奇怪的异常。这是代码(缩写):fromPILimportImage,ImageDraw(...)img=Image.open(sys.argv[1])rimg=img.copy()rimg_draw=ImageDraw.Draw(rimg)(...)(for-loop)rimg_draw.rectangle((x1,y1,x2,y2),fill=None,outline=(255,0,0))这会引发以下异常:rimg_draw.rectangle((x1,y1,x2,y2),fill=N

python - 与 Networkx 相比,图形工具出奇地慢

看完令人印象深刻的performancecomparison,我决定尝试使用图形工具。所以为了比较,我编写了代码来使用这两个包生成随机树。图形工具代码:importnumpyasnpimportgraph_tool.allasgt#constructaninitialgraphwithtwonodesandonelinkn=5000G=gt.Graph(directed=False)G.add_edge(0,1)fortinrange(2,n):#connectthenewvertextooneoftheoldverticesrandomlyG.add_edge(np.random.c

python - 在 Networkx 中更改节点显示大小

我没有使用GraphViz,因为我在让它与Networkx兼容方面遇到了问题。我知道这很奇怪,但我已经尝试了很多建议来解决这个问题,但我似乎遇到了世界上最糟糕的运气。因此,我遇到的问题必须在不使用GraphViz的情况下使用Networkx解决。我的程序读取文档并尝试根据文档的内容绘制一些MindMap。但是,Networkx在实际绘制节点时似乎有一个默认大小。这对我不利,因为很多文本进入我的每个节点。我需要一种方法来增加节点的显示大小(根据属于该节点的文本的大小任意增加)。我曾尝试查看Networkx网站、有关SO的其他问题以及来自Google的大约200个搜索结果,但没有成功。

python - 使用 networkx 的节点标签

我正在根据curveSeq持有的给定Y值序列创建一个图表.(X值自动枚举:0,1,2...)即curveSeq=[10,20,30],我的图表将包含点:,,.我在同一个nx.Graph上绘制了一系列图表为了在一张图片中呈现所有内容。我的问题是:每个节点都显示其位置。即位置节点显示其各自的标签,我不知道如何将其删除。我想为特定节点添加标签,但我不知道如何添加标签。例如,对于序列:[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1]收到的图是:代码是:forpointincurveSeq:cur_point=point#assertlen(cur_point)