Open In App

Python | Visualize graphs generated in NetworkX using Matplotlib

Last Updated : 12 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Prerequisites: Generating Graph using Network X, Matplotlib Intro
In this article, we will be discussing how to plot a graph generated by NetworkX in Python using Matplotlib. NetworkX is not a graph visualizing package but basic drawing with Matplotlib is included in the software package.

Step 1 : Import networkx and matplotlib.pyplot in the project file. 

Python3
# importing networkx 
import networkx as nx

# importing matplotlib.pyplot
import matplotlib.pyplot as plt

Step 2 : Generate a graph using networkx. 
Step 3 : Now use draw() function of networkx.drawing to draw the graph. 
Step 4 : Use savefig("filename.png") function of matplotlib.pyplot to save the drawing of graph in filename.png file.

Below is the Python code:  

Python3
# importing networkx 
import networkx as nx
# importing matplotlib.pyplot
import matplotlib.pyplot as plt

g = nx.Graph()

g.add_edge(1, 2)
g.add_edge(2, 3)
g.add_edge(3, 4)
g.add_edge(1, 4)
g.add_edge(1, 5)

nx.draw(g)
plt.savefig("filename.png")

Output: 

To add numbering in the node add one argument with_labels=True in draw() function.  

Python3
# importing networkx 
import networkx as nx
# importing matplotlib.pyplot
import matplotlib.pyplot as plt

g = nx.Graph()

g.add_edge(1, 2)
g.add_edge(2, 3)
g.add_edge(3, 4)
g.add_edge(1, 4)
g.add_edge(1, 5)

nx.draw(g, with_labels = True)
plt.savefig("filename.png")

Output: 

Different graph types and plotting can be done using networkx drawing and matplotlib. 

Note** : Here keywords is referred to optional keywords that we can mention use to format the graph plotting. Some of the general graph layouts are :  

  1. draw_circular(G, keywords) : This gives circular layout of the graph G.
  2. draw_planar(G, keywords) :] This gives a planar layout of a planar networkx graph G.
  3. draw_random(G, keywords) : This gives a random layout of the graph G.
  4. draw_spectral(G, keywords) : This gives a spectral 2D layout of the graph G.
  5. draw_spring(G, keywords) : This gives a spring layout of the graph G.
  6. draw_shell(G, keywords) : This gives a shell layout of the graph G. 
     

Example :  

Python3
# importing networkx
import networkx as nx
# importing matplotlib.pyplot
import matplotlib.pyplot as plt

g = nx.Graph()

g.add_edge(1, 2)
g.add_edge(2, 3)
g.add_edge(3, 4)
g.add_edge(1, 4)
g.add_edge(1, 5)
g.add_edge(5, 6)
g.add_edge(5, 7)
g.add_edge(4, 8)
g.add_edge(3, 8)

# drawing in circular layout
nx.draw_circular(g, with_labels = True)
plt.savefig("filename1.png")

# clearing the current plot
plt.clf()

# drawing in planar layout
nx.draw_planar(g, with_labels = True)
plt.savefig("filename2.png")

# clearing the current plot
plt.clf()

# drawing in random layout
nx.draw_random(g, with_labels = True)
plt.savefig("filename3.png")

# clearing the current plot
plt.clf()

# drawing in spectral layout
nx.draw_spectral(g, with_labels = True)
plt.savefig("filename4.png")

# clearing the current plot
plt.clf()

# drawing in spring layout
nx.draw_spring(g, with_labels = True)
plt.savefig("filename5.png")

# clearing the current plot
plt.clf()

# drawing in shell layout
nx.draw_shell(g, with_labels = True)
plt.savefig("filename6.png")

# clearing the current plot
plt.clf()

Outputs : 
Circular Layout 


Planar Layout 


Random Layout 


Spectral Layout 


Spring Layout 


Shell Layout 

Reference : NetworkX Drawing Documentation
 


Next Article
Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy