top of page

Build a network from scratch: Networkx Python

NetworkX is the most popular Python package for manipulating and analyzing graphs. Several packages offer the same basic level of graph manipulation, and study of the structure, dynamics, and functions of complex networks. Pygraphviz is a Python interface to the Graphviz graph layout and visualization package.Python language data structures for graphs, digraphs, and multigraphs. Nodes can be "anything" (e.g. text, images, XML records)Edges can hold arbitrary data (e.g. weights, time-series)Generators for classic graphs, random graphs, and synthetic networksStandard graph algorithmsNetwork structure and analysis measuresBasic graph drawingOpen source BSD licenseWell tested: more than 1500 unit testsAdditional benefits from Python: fast prototyping, easy to teach, multi-platform.


Installing Packages

If you've done any sort of data analysis in Python or have the Anaconda distribution, my guess is you probably have pandas and matplotlib. However, you might not have networkx.


pip install pandas pip install networkx pip install matplotlib


Next we will present simple example of network with 5 nodes. To fire up network, we have to import networkx.


import networkx as nx

import matplotlib.pyplot as plt

%matplotlib inline


Create Graph

Now you use the edge list and the node list to create a graph object in networkx.


# Create empty graph
G = nx.Graph()

"G" is the name of the graph you build. Next we add nodes. There are two ways to add nodes: one by one,
print(type(G))            #type=global keyword/class
G.add_node("A")
G.add_node("Python")
##to find the first node
#first make a node list
nodelist = list(G.node)
print(nodelist[0])          #python starts with 0


Add in a list of Nodes

nodelist = ['B','C','D','E']
G.add_nodes_from(nodelist)


Then we add edges. Also there are two ways, either one by one



G.add_edge('A','B')
G.remove_node('Python')

Add in a batch

edgeList = [('A','B'),('B','C'),('C','D'),('A','D')] #list of tuples
G.add_edges_from(edgeList) 


Finally we will visualize our work and get basic information of network.


nx.draw(G, with_labels =True, node_color = 'pink', node_size = 900)




If you like Codersarts blog and looking for Assignment help,Project help, Programming tutors help and suggestion you can send mail at contact@codersarts.com.

Please write your suggestion in comment section below if you find anything incorrect in this blog post.

213 views0 comments

Recent Posts

See All

Comments


bottom of page