pylab.rcParams['figure.figsize'] = 6, 6 import random random.seed(0) import networkx as nx G = nx.Graph() G.add_node(1) G.add_nodes_from([2,3]) H = nx.path_graph(10) G.add_nodes_from(H) G.add_node(H) nx.draw(G) G.add_edge(1,2) nx.draw(G) e = (2,3) G.add_edge(*e) nx.draw(G) G.add_edges_from([(1,2),(1,3)]) G.add_edges_from(H.edges()) nx.draw(G) G.remove_node(H) nx.draw(G) G.clear() G.add_edges_from([(1,2),(1,3)]) G.add_node(1) G.add_edge(1,2) G.add_node("spam") # adds node "spam" G.add_nodes_from("spam") # adds 4 nodes: 's', 'p', 'a', 'm' nx.draw(G) G.number_of_nodes() G.number_of_edges() G.nodes() G.edges() G.neighbors(1) G.remove_nodes_from("spam") G.nodes() G.remove_edge(1,3) H = nx.DiGraph(G) H.edges = [(1,2),(2,1)] edgelist = [(0,1),(1,2),(2,3)] H = nx.Graph(edgelist) nx.draw(H) G[1] G[1][2] G.add_edge(1,3) G[1][3]['color'] = 'blue' FG = nx.Graph() FG.add_weighted_edges_from([(1,2,0.125),(1,3,0.75),(2,4,1.2),(3,4,0.375)]) for n,nbrs in FG.adjacency_iter(): for nbr,eattr in nbrs.items(): data=eattr['weight'] if data<0.5: print('(%d, %d, %.3f)' % (n,nbr,data)) G = nx.Graph(day="Friday") G.graph G.graph['day'] = 'Monday' G.graph G.add_node(1, time = '5pm') G.add_nodes_from([3], time = '2pm') G.node[1] G.node[1]['room'] = 714 G.nodes(data = True) G.add_edge(1, 2, weight = 4.7 ) G.add_edges_from([(3,4),(4,5)], color = 'red') G.add_edges_from([(1,2,{'color':'blue'}), (2,3,{'weight':8})]) G[1][2]['weight'] = 4.7 G.edge[1][2]['weight'] = 4 DG = nx.DiGraph() DG.add_weighted_edges_from([(1,2,0.5), (3,1,0.75)]) DG.out_degree(1,weight = 'weight') DG.degree(1,weight = 'weight') DG.successors(1) DG.neighbors(1) DG DG = nx.Graph(DG) DG MG = nx.MultiGraph() MG.add_weighted_edges_from([(1,2,.5), (1,2,.75), (2,3,.5)]) MG.degree(weight = 'weight') GG = nx.Graph() for n,nbrs in MG.adjacency_iter(): for nbr,edict in nbrs.items(): minvalue=min([d['weight'] for d in edict.values()]) GG.add_edge(n,nbr, weight = minvalue) nx.shortest_path(GG,1,3) G = nx.petersen_graph() H = nx.subgraph(G, [1,2,3,4,5,6,7,8]) nx.draw(H) H1 = nx.subgraph(G, [1,2,3,4]) H2 = nx.subgraph(G, [5,6,7,8]) HH = nx.union(H1, H2) nx.draw_circular(HH) H4 = nx.disjoint_union(H1, H1) nx.draw_circular(H4) H5 = nx.cartesian_product(H1, H1) nx.draw_circular(H5) H1 = nx.subgraph(G, [1,2,3,4]) nx.draw_circular(H1) H2 = nx.subgraph(G, [3,4,5,6]) nx.draw_circular(H2) HH = nx.compose(H1, H2) nx.draw_circular(HH) GP = nx.nx.complement(G) nx.draw_circular(GP) petersen = nx.petersen_graph() tutte = nx.tutte_graph() maze = nx.sedgewick_maze_graph() tet = nx.tetrahedral_graph() nx.draw(petersen) nx.draw(tutte) nx.draw(maze) nx.draw(tet) K_5 = nx.complete_graph(5) K_3_5 = nx.complete_bipartite_graph(3,5) nx.draw(K_3_5) barbell = nx.barbell_graph(10,10) nx.draw(barbell) lollipop = nx.lollipop_graph(10,20) nx.draw(lollipop) er = nx.erdos_renyi_graph(100,0.15) nx.draw(er, with_labels = False, node_size = 20, linewidths = 0.5, width = 0.5, arrows = False) ws = nx.watts_strogatz_graph(30,3,0.1) nx.draw(ws, with_labels = False, node_size = 20, linewidths = 0.5, width = 0.5, arrows = False) ba = nx.barabasi_albert_graph(100,5) nx.draw(ba, with_labels = False, node_size = 20, linewidths = 0.5, width = 0.5, arrows = False) red = nx.random_lobster(100,0.9,0.9) nx.draw(red, with_labels = False, node_size = 20, linewidths = 0.5, width = 0.5, arrows = False) nx.write_gml(red,"/home/matthew/tmp/red.gml") mygraph = nx.read_gml("/home/matthew/tmp/red.gml") nx.write_gml(er, "/home/matthew/tmp/er.gml") nx.draw(mygraph, with_labels = False, node_size = 20, linewidths = 0.5, width = 0.5, arrows = False) pylab.rcParams['figure.figsize'] = 10, 10 gephi_graph = nx.read_graphml("/home/matthew/tmp/red.graphml") nx.draw(gephi_graph, with_labels = False, node_size = 20, linewidths = 0.5, width = 0.5, arrows = False) pos = dict([(v,(gephi_graph.node[v]['x'], gephi_graph.node[v]['y'])) for v in gephi_graph.nodes()]) nx.draw(gephi_graph, pos = pos, with_labels = False, node_size = 20, linewidths = 0.5, width = 0.5, arrows = False) G = nx.erdos_renyi_graph(20, 0.2) print G.name + '\n' + len(G.name)*'-' + '\n' print "Number of nodes:\t%i.\nNumber of edges:\t%i." % (G.order(), G.size()) G.nodes() v = G.nodes()[0] v G.degree(v) G.neighbors(v) G.edges() e = G.edges()[5] e nx.connected_components(G) sorted(nx.degree(G).values()) nx.clustering(G) nx.degree(G,4) G.degree(4) G.degree([2,3,4]) sorted(G.degree([2,3,4]).values()) sorted(G.degree().values()) pylab.rcParams['figure.figsize'] = 6, 6 nx.draw(G) nx.draw_random(G) nx.draw_circular(G) nx.draw_spectral(G) for node in G.nodes_iter(): print "The degree of node %s is %i." % (node, G.degree(node)) for node, degree in G.degree_iter(): print "The degree of node %i is %i." % (node, degree) for node in G.nodes_iter(): print "The neighbors of node %i in G are %s." % (node, G.neighbors(node)) for i in G.neighbors_iter(v): print i for node in G.nodes_iter(): for neighbor in G.neighbors_iter(node): print "Node %i is a neighbor of node %i." % (node, neighbor) for i in G.edges_iter(): print i nx.node_boundary(G, [1,2,3]) nx.edge_boundary(G, [1,2,3])