草庐IT

NetworkX

全部标签

python - 使用 networkX 和 matplotlib 绘制一个巨大的图形

我正在使用networkX和matplotlib绘制一个包含大约5K节点的图形。matplotlib的GTK窗口具有缩放和可视化图形的工具。有什么办法,我可以保存一个放大的版本以便以后进行适当的可视化?importmatplotlib.pyplotaspltimportnetworkxasnxpos=nx.spring_layout(G)#Gismygraphnx.draw(G,pos,node_color='#A0CBE2',edge_color='#BB0000',width=2,edge_cmap=plt.cm.Blues,with_labels=True)#plt.show()

python - 如何向networkx中的边缘添加新属性?

我所拥有的:在networkx中导入的图G,其节点和边由gml文件加载。问题:如何为选中的边E添加新属性。我想做什么:我想为我的图表的特定边E添加一个新属性“类型”。注意:该边E不存在“类型”属性。我的代码是:G.edge[id_source][id_target]['type']=value但是如果我打印G的所有边,现在我有n+1个边;G的所有旧边,以及一条新边p=(id_source,id_target,{'type'=value})。此外,旧边E(我要修改的边)没有新属性“type”。所以我的代码添加了一个新的优势(我不想要)。我想更新旧的添加一个不存在的新属性。

python - 如何向networkx中的边缘添加新属性?

我所拥有的:在networkx中导入的图G,其节点和边由gml文件加载。问题:如何为选中的边E添加新属性。我想做什么:我想为我的图表的特定边E添加一个新属性“类型”。注意:该边E不存在“类型”属性。我的代码是:G.edge[id_source][id_target]['type']=value但是如果我打印G的所有边,现在我有n+1个边;G的所有旧边,以及一条新边p=(id_source,id_target,{'type'=value})。此外,旧边E(我要修改的边)没有新属性“type”。所以我的代码添加了一个新的优势(我不想要)。我想更新旧的添加一个不存在的新属性。

python - 添加边缘权重以在 networkx 中绘制输出

我正在使用networkx包在python中做一些图论。我想将我的图表边缘的权重添加到绘图输出中。我怎样才能做到这一点?例如,我将如何修改以下代码以获得所需的输出?importnetworkxasnximportmatplotlib.pyplotaspltG=nx.Graph()i=1G.add_node(i,pos=(i,i))G.add_node(2,pos=(2,2))G.add_node(3,pos=(1,0))G.add_edge(1,2,weight=0.5)G.add_edge(1,3,weight=9.8)pos=nx.get_node_attributes(G,'po

python - 添加边缘权重以在 networkx 中绘制输出

我正在使用networkx包在python中做一些图论。我想将我的图表边缘的权重添加到绘图输出中。我怎样才能做到这一点?例如,我将如何修改以下代码以获得所需的输出?importnetworkxasnximportmatplotlib.pyplotaspltG=nx.Graph()i=1G.add_node(i,pos=(i,i))G.add_node(2,pos=(2,2))G.add_node(3,pos=(1,0))G.add_edge(1,2,weight=0.5)G.add_edge(1,3,weight=9.8)pos=nx.get_node_attributes(G,'po

python - 选择具有给定属性值的网络节点

我想选择图形中具有特定属性的节点并对其执行操作。如何选择具有给定属性值的节点?例如:P=nx.Graph()P.add_node('node1',at=5)P.add_node('node2',at=5)P.add_node('node3',at=6)有没有办法只选择at==5的节点?我在想象类似的东西(这行不通):forpinP.nodes():P.node[p]['at'==5] 最佳答案 Python根据documentation试试:nodesAt5=filter(lambda(n,d):d['at']==5,P.nodes

python - 选择具有给定属性值的网络节点

我想选择图形中具有特定属性的节点并对其执行操作。如何选择具有给定属性值的节点?例如:P=nx.Graph()P.add_node('node1',at=5)P.add_node('node2',at=5)P.add_node('node3',at=6)有没有办法只选择at==5的节点?我在想象类似的东西(这行不通):forpinP.nodes():P.node[p]['at'==5] 最佳答案 Python根据documentation试试:nodesAt5=filter(lambda(n,d):d['at']==5,P.nodes

python - 将networkx图保存到json图的方法?

好像networkx中应该有导出json图形格式的方法,但是我没看到。我想这应该很容易用nx.to_dict_of_dicts()完成,但需要一些操作。有人知道一个简单而优雅的解决方案吗? 最佳答案 这个documentation包含完整的描述一个简单的例子是这样的:importnetworkxasnxfromnetworkx.readwriteimportjson_graphDG=nx.DiGraph()DG.add_edge('a','b')printjson_graph.dumps(DG)您也可以查看Javascript/SV

python - 将networkx图保存到json图的方法?

好像networkx中应该有导出json图形格式的方法,但是我没看到。我想这应该很容易用nx.to_dict_of_dicts()完成,但需要一些操作。有人知道一个简单而优雅的解决方案吗? 最佳答案 这个documentation包含完整的描述一个简单的例子是这样的:importnetworkxasnxfromnetworkx.readwriteimportjson_graphDG=nx.DiGraph()DG.add_edge('a','b')printjson_graph.dumps(DG)您也可以查看Javascript/SV

python - 组合(加入)networkx Graphs

假设我有两个networkx图,G和H:G=nx.Graph()fromnodes=[0,1,1,1,1,1,2]tonodes=[1,2,3,4,5,6,7]forx,yinzip(fromnodes,tonodes):G.add_edge(x,y)H=nx.Graph()fromnodes=range(2,8)tonodes=range(8,14)forx,yinzip(fromnodes,tonodes):H.add_edge(x,y)加入两个networkx图的最佳方法是什么?我想保留节点名称(注意公共(public)节点,2到7)。当我使用nx.disjoint_union(