How to use networkx.draw() function

share link

by gayathrimohan dot icon Updated: Sep 29, 2023

technology logo
technology logo

Solution Kit Solution Kit  

networkx.draw() is a function from the NetworkX library in Python. The visualization of graphs and networks uses it. It is a powerful library for working with graphs and networks. 

networkx.draw() is one of the key functions. Users use this function to create visual representations of graph data structures.  

You can use networkx.draw() for: 

  • Graph Visualization: It allows you to create visual representations of graphs. You can display nodes and edges here. That makes it easier to understand the structure and relationships within the graph.  
  • Customizable Layouts: Common layout options include circular, spring, and spectral layouts, among others.  
  • Node and Edge Customization: You can customize the appearance of nodes and edges. We can convey more information by specifying colors, sizes, labels, and more.  
  • Interactive Visualization: When used in interactive environments like Jupyter Notebook. You can create interactive visualizations. That allows you to explore the graph, often using libraries like Matplotlib.  
  • Graph Analysis: While networkx.draw() focuses on visualization, it complements NetworkX's extensive capabilities. Graph analysis and manipulation use that.   

Here are some of the key types of networks you can create:  

  • Simple Graphs 
  • Undirected graphs: Use G = nx.Graph() to create a basic undirected graph. Undirected edges connect nodes.  
  • Directed graphs: Use G = nx.DiGraph() to create a directed graph. Edges have a direction from one node to another.  
  • Weighted Graphs: Use the weight parameter to specify edge weights.  
  • Multigraphs: Multigraphs allow many edges between the same pair of nodes. Use G = nx. MultiGraph() for undirected multigraphs or G = nx. MultiDiGraph() for directed multigraphs.  
  • Bipartite Graphs: Bipartite graphs consist of two sets of nodes and edges. It is only used to connect nodes from different sets. Use functions like nx.bipartite.random_graphs() to create them.  
  • Random Graphs: With this package, you can create random graphs. 
  • Geometric Graphs: You can create graphs based on geometric properties. The properties are similar to Delaunay triangulations or Voronoi diagrams. They use functions like nx.geographical_threshold_graph().  
  • Graph Layouts: This allows you to choose different layout algorithms. Visualization uses this for positioning nodes. Those are like circular, spring, or spectral layouts.  
  • Custom Node and Edge Attributes: You can customize node and edge attributes. You use that to control node colors, sizes, labels, and edge styles. This is useful for highlighting specific features in the network.  
  • Subgraph Extraction: You can create subgraphs by extracting nodes from a larger graph. Enabling the visualization of smaller, focused parts of the network does this.  
  • Graph Drawing Aesthetics: NetworkX provides options for adjusting aesthetics. Those are like node and edge colors, transparency, and labels. Using it makes the visualization more informative and appealing.  
  • Community Detection: You can use community detection algorithms to group nodes. Similar connections do this and visualize these communities within the graph.  
  • Node Positioning: For more control over node positions, you can specify node positions. This uses a dictionary and the pos parameter in networkx.draw().  

Networkx is a Python library for creating and analyzing graphs. You can use the networkx.draw() function to create and customize graphs. Here's a step-by-step guide on how to do it:  

  • Import NetworkX and Matplotlib: First, import the necessary libraries.  
  • Create a Graph: You can create an empty graph or start with some nodes and edges.  
  • Add Nodes and Edges: To add nodes and edges to the graph, you can use the add_node() and add_edge() methods.  
  • Customize Node Positions: You can specify the positions of nodes using a dictionary. This can be useful for more control over the graph's layout.  
  • Draw the Graph: Now, you can use networkx.draw().  
  • Customize Node and Edge Colors: You can customize the colors of nodes and edges. You can do this by using the node_color and edge_color parameters.  
  • Add Node Labels: You can use the with_labels parameter to add node labels. Also, specify node labels using a dictionary.  
  • Display the Graph: Finally, use to display the graph.  

In Conclusion, networkx.draw() is a function. The NetworkX library for Python uses this to visualize graphs. Networkx.draw() is a versatile and customizable tool. Python users visualize graphs and networks using this. There are different ways to position nodes, like using spring_layout or circular_layout. The networkx.draw() is a valuable tool for visualizing graphs in Python. This offers flexibility and customization options for creating informative network visualizations.  

Fig: Preview of the output that you will get on running this code from your IDE.


In this solution we are using networkx library in Python.


Follow the steps carefully to get the output easily.

  1. Download and Install the PyCharm Community Edition on your computer.
  2. Open the terminal and install the required libraries with the following commands.
  3. Install networkx - pip install networkx.
  4. Copy the snippet using the 'copy' button and paste it into terminal.
  5. Wait till installation process to be completed.

I hope you found this useful.

I found this code snippet by searching for 'How to use networkx.draw() function' in Kandi. You can try any such use case!

Environment Tested

I tested this solution in the following versions. Be mindful of changes when working with other versions.

  1. PyCharm Community Edition 2022.3.1
  2. The solution is created in Python 3.11.1 Version
  3. networkx networkx-3.1 Version

Using this solution, we can able to use networkx.draw() function in Python using pip with simple steps. This process also facilities an easy way to use, hassle-free method to create a hands-on working version of code which would help us to use networkx.draw() function in Python.

Department Library

networkxby networkx

Python doticonstar image 12745 doticonVersion:networkx-3.1doticon
License: Others (Non-SPDX)

Network Analysis in Python


            networkxby networkx

            Python doticon star image 12745 doticonVersion:networkx-3.1doticon License: Others (Non-SPDX)

            Network Analysis in Python

                      You can search for any dependent library on kandi like 'networkx'.


                      1. For any support on kandi solution kits, please use the chat
                      2. For further learning resources, visit the Open Weaver Community learning page


                      1. What is a NetworkX graph, and how does it work?  

                      NetworkX is a Python library. Users utilize it to create, manipulate, and analyze complex networks or graphs. A graph, in this context, consists of nodes and edges. Here's how NetworkX works:  

                      • Creating a Graph: To create a graph, start by initializing a graph class like Graph or DiGraph in NetworkX.  
                      • Adding Nodes and Edges: You can add nodes and edges to the graph. You can use functions like add_node() and add_edge(). Nodes represent unique identifiers, and edges connect pairs of nodes.  
                      • Analyzing Graphs: NetworkX has several functions for analyzing graphs. These functions include finding neighbors and checking for connected components. It can also calculate centrality measures.  
                      • Visualization: You can visualize graphs using NetworkX's built-in functions.   
                      • Algorithms: NetworkX offers many graph algorithms for tasks. Those tasks include finding the shortest paths, clustering, and community detection. These algorithms efficiently apply to large graphs.  
                      • Graph Attributes: You can attach attributes to nodes and edges. To accomplish this, you can store more information about elements in the graph.  

                      2. How can I use Social Network Analysis with networkx.draw()?  

                      Social Network Analysis (SNA) is a powerful tool. People use it to study and analyze relationships within networks. Entities can connect through various systems like social networks, communication networks, or networkx. Networkx is a Python library used for SNA. Using networkx.draw() to visualize the network can provide valuable insights. Here's how you can use it:  

                      • Import the library: To use the networkx library, you need to import it. You may also need to import other libraries like matplotlib for visualization.  
                      • Create a graph: Create a graph using networkx. You can add nodes and edges to represent the entities and their relationships in the network.  
                      • Visualize the network: Use networkx.draw() to visualize the network. You can customize the appearance of nodes and edges using various parameters.  
                      • Customize the visualization: You can further customize the visualization by adjusting parameters. Those parameters are node size, color, edge style, and layout.   

                      3. Where can I find helpful documentation about the networkx.draw() function?   

                      You can find a document about this function in the NetworkX library. You can do this by visiting the official NetworkX documentation website. It provides detailed information, examples, and usage guidelines for the draw () function. You can often find tutorials and guides on websites like Stack Overflow. NetworkX is related to those tutorials. That may provide further insights and examples on how to use this function.  

                      4. What are the Graph Layout options in networkx.draw()?  

                      In NetworkX, the networkx.draw() function provides several options for graph layout. When you look at a graph, you decide where to put the nodes and edges using these choices. Here are some of the used graph layout options:  

                      • Circular layout (nx.circular_layout)  
                      • Kamada-Kawai Layout (nx.kamada_kawai_layout)  
                      • Random Layout (nx.random_layout)  
                      • Shell Layout (nx.shell_layout)  
                      • Spring Layout (nx.spring_layout)  
                      • Spectral layout (nx.spectral_layout)  
                      • Planar Layout (nx.planar_layout)  
                      • Bipartite Layout (nx.bipartite_layout)  
                      • Custom Layout  

                      See similar Kits and Libraries