Introduction to Social Networks using NetworkX in Python - GeeksforGeeks

21 Aug, 2021
Prerequisite – Python Basics 
Ever wondered how the most popular social networking site Facebook works? How we are connected with friends using just Facebook? So, Facebook and other social networking sites work on a methodology called social networks. Social networking is used in mostly all social media sites such as Facebook, Instagram, and LinkedIn, etc. It has a significant effect on marketers to engage customers. Social networks use graphs for creating a network. Their nodes are people and edges are their connection between each other. Two nodes with edges connected are friends. Now let’s see an example for understanding what is social networks. 
The network of 50 students in a class 
The network of 50 people
The most important python library used in social networking is Networkx.
NetworkX is a graph package that is used to create and modify different types of graphs. It provides a rapid development environment for collaborative, multidisciplinary projects.
pip install networkx
After starting python, we have to import networkx module:
import networkx as nx
Graph: This type of graph stores nodes and edges and edges are un-directed. It can have self-loops but cannot have parallel edges.
Di-Graph: This type of graph is the base class for directed graphs. It can have nodes and edges and edges are directed in nature. It can have self-loops but parallel edges are not allowed in Di-Graph.
Multi-Graph: This type of graph is an undirected graph class that can store multi or parallel edges. It can have self-loops as well. Multi-edges are multiple edges between 2 nodes.
Multi-DiGraph: This type of graph is a directed graph class that can store multi edges. It can have self-loops as well. Multi-edges are multiple edges between 2 nodes.
Python3
# import networkx libraryimport networkx as nx # create an empty undirected graphG = nx.Graph() # adding edge in graph GG.add_edge(1, 2)G.add_edge(2, 3, weight=0.9)
Drawing can be done using  Matplotlib.pyplot library. 
Python3
# import matplotlib.pyplot libraryimport matplotlib.pyplot as plt # import networkx libraryimport networkx as nx # create a cubical empty graphG = nx.cubical_graph() # plotting the graphplt.subplot(122) # draw a graph with red# node and value edge colornx.draw(G, pos = nx.circular_layout(G),        node_color = 'r',        edge_color = 'b')
Output: 
Circular Graph
To remove an edge from the graph, use the remove_edge() method of graph object. 
 Syntax: G.remove_edge(u, v)
 Parameters:  
u: first node
v: second node
Return: None
Graph Node Removal:
To remove a node from the graph, use the remove_node() method of graph object.
Syntax: G.remove_node(u)
Parameter: Node to remove
Return: None
Python3
# import networkx libraryimport netwokx as nx # create an empty undirected graphG = nx.Graph() # add edge to the graphG.add_edge('1', '2')G.add_edge('2', '3') # print the adjacent verticesprint(G.adj)
Output: 
{'1': {'2': {}}, '2': {'1': {}, '3': {}}, '3': {'2': {}}}
 
varshagumber28
python-modules
python-utility
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Read a file line by line in Python
How to Install PIP on Windows ?
Enumerate() in Python
Different ways to create Pandas Dataframe
Iterate over a list in Python
Python String | replace()
*args and **kwargs in Python
Reading and Writing to text files in Python
Create a Pandas DataFrame from Lists