我在下面的形式中有一个边缘列表 start | end
a c
b d
e b 我有数千万条边(大约3000万条边),我不能将整个图读入内存-至少不能使用像networkx这样的库,这有点占用内存。 我的目标是在该列表表示的图中找到包含少于x个节点的所有连接组件。 例如,我想用少于x=30的节点获取所有连接的组件。但我不想这样做:构建整个图,然后搜索连接的组件(例如,调用此networkx命令:nx.connected_component_subgraphs(nxg))。 有没有一种方法可以只使用边列表文件来搜索连接的组件,而不需要构建整个图? 附加
在图中,如何找到连接(直接绑定)到节点的边数?
然后,这将是微不足道的,但如果有任何直接的方法,以找到唯一的(S)节点(S)的最大边连接到他们,这将是很好的。
我正在使用Python2.7和Networkx。
直到现在,我都是这样做的:
sG = list(nx.connected_component_subgraphs(G)) # sG is a sub_graph of main graph G
nb_sG = len(sub_graphs)
max_con_node = list()
for m in xrange(nb_sG):
sG_n
我是NetworkX的新手。现在,我设法将所有节点连接到这个特定节点。我下一步要做的是让它具有交互性,例如,能够通过使用光标拖动来使每个节点移动。我知道我必须使用matplotlib,但我不确定如何使用它。有谁可以帮我?
我的代码是:
import matplotlib.pyplot as plt
import networkx as nx
import itertools
d = [name of nodes]
f = [number per nodes]
for i in d:
G.add_edge('"' + i + '"'
下面的函数返回一个随机生成的大小为nxn的邻接矩阵,表示一个图。
import random
def random_adjacency_matrix(n):
matrix = [[random.randint(0, 1) for i in range(n)] for j in range(n)]
# No vertex connects to itself
for i in range(n):
matrix[i][i] = 0
# If i is connected to j, j is connected to i
for
我正在使用networkx python中的edges_iter函数...我希望从图中随机提取边,然后使用这些边,获得每一端的节点……我听说edge_iter可以帮助我获得随机边(我需要随机边),但我不知道如何获得附加的节点。我已经将图形保存为gpickle格式,并加载,我使用a=G.edges_iter() it...then a,我得到了这个,指示一个edge...what的出现,接下来我想找出连接在这个结点末尾的节点,edge...help me out with this...thanks,很多人。
我有一个图G,用它的加权矩阵W定义,使用networkx包
import networkx as nx
G = nx.from_numpy_matrix(W)
我引入了图G的直线图I(G)。使用networkx,我可以找到如下所示的直线图
import networkx as nx
G = nx.from_numpy_matrix(W)
I = nx.line_graph(G)
networkx文档读取
图、节点和边缘数据不会传播到新的图中。
我的问题是如何在直线图I(G)中找到对应于特定顶点v'_k的图G的边v_iv_j。
我有一个问题,我有一个有向(或无向)非加权图,我需要找到从s-t的简单路径。唯一的复杂之处在于,我需要避免某些标记为红色的节点。 我找到了python NetworkX图形库,发现它非常合适。我想用networkx.dijkstra_path() (或者也可以使用bfs函数)来查找最短路径。 在这段代码中,我构建了一个非常简单的图,并找到了从s=0到t=4的路径: import networkx
G = networkx.Graph()
for i in range(5):
G.add_node(i)
# from zero
G.add_edge(0,1)
G.add_edg
我试图在Python上绘制一个networkx图。而不是绘制所有节点和边缘,我想过滤掉有链接到用户给定节点的节点。我认为这类似于R中的iGraph中的子组件,例如,在下面的代码中,我的dataframe有一个节点4429。我想绘制直接或间接连接到4429的节点和边。
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
import pylab
G = nx.DiGraph()
g = nx.from_pandas_edgelist(dataframe, 'Source', '
我有一个很大的JSON文件,我想将它与networkx库转换成一个图形。JSON文件包含如此多的节点,如:
{“数据”:{ "d":2,“源”:"C",“目标”:"L“},…}
我已经打开了JSON文件,并在JSON文件中提取了每个“数据”字典。但是,我不知道如何使用networkx将所有考虑属性"d“的源目标节点转换为一个图。
import networkx as nx
import json
lst = list()
with open('json_file.json') as json_load:
data = j
给出了一个无标度图G(其度分布是幂律的图),并给出了以下步骤:
for i in range(C):
coint = randint(0,1)
if (coint == 0):
delete_random_edges(G)
else:
add_random_edge(G)
(C为常数)
因此,当C较大时,程序后的度分布更像G(n,p)。我对保持幂律分布感兴趣,也就是说,我希望这个图在这个过程之后是无标度的,即使对于大的C。
我的想法是用一种方式编写过程"delete_random_edges“和"add_random_ed
我正在努力建立一对无规模的网络,包括:
指数服从幂律的度分布
完全相同的节点数。
我需要建立至少60对这样的夫妇,并为每个人运行一个模拟。
为了做到这一点,我需要一种方法来生成具有上述属性的完全n个节点的网络。
现在,我可以使用NetworkX库生成一个图,它遵循给定指数的幂律,并使用下面的代码生成一个度分布的图
import networkx as nx
import matplotlib.pyplot as plt
#create a graph with degrees following a power law distribution
s = nx.utils.po