How to create directed graph in networkx

share link

by Abdul Rawoof A R dot icon Updated: Sep 25, 2023

technology logo
technology logo

Solution Kit Solution Kit  

NetworkX is a Python library for working with complex networks. It includes graphs, which are fundamental mathematical structures. Entities use it to represent and analyze relationships. In NetworkX, a directed graph is often called a "DiGraph". It is a specific type of graph where edges have a direction.  


Here are some key characteristics of a NetworkX-directed graph and its common uses:   

  • Nodes (Vertices): Nodes, or vertices, are individual entities like people, websites, or cities.   
  • Edges (Arcs): represent directed relationships or connections between nodes. Each edge has a source and a target, indicating the direction of the relationship.   
  • Directed Edges: The direction of edges is crucial in a directed graph. It means that if there is an edge from node A to node B, it doesn't imply an edge from B to A unless defined. We use this directional aspect to model cause-and-effect relationships and dependencies.   
  • Social Networks: Directed graphs can represent social relationships. Its edges state who follows whom on social media platforms like Twitter.   
  • Web Link Analysis: In PageRank, directed graphs show how websites link.   
  • Transportation Networks: Directed graphs can model transportation systems like road networks.   
  • Dependency Graphs: Direct graphs can represent dependencies between modules or functions. It helps in project management and building processes.   
  • Flow Networks: Flow networks are graphs that show how resources, like water or data, move.   


NetworkX has many functions and algorithms to create, change, and study directed graphs. This tool helps researchers, data scientists, and engineers with network data.   


Here is an example of how to create a directed graph in Networkx:   

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


In this solution, we are using the Networkx library.


Follow the steps carefully to get the output easily.

  1. Install 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. Create a new Python file(e.g.:
  5. Copy the snippet using the 'copy' button and paste it into that file(import plot()).
  6. Run the file using the run button.

I hope you found this useful. I have added the link to dependent libraries, and version information in the following sections.

I found this code snippet by searching for 'Directed Graph Structure in networkx with two edges between two nodes' 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. The solution is created in PyCharm 2022.3.3.
  2. The solution is tested on Python 3.9.7.
  3. Networkx version 3.1.

Using this solution, we are able to create a directed graph in networkx with simple steps. This process also facilitates an easy-to-use, hassle-free method to create a hands-on working version of code which would help us to create a directed graph in networkx.

Dependent 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 also search for any dependent libraries on kandi like 'Networkx'.


                      1. What is the Memory Graph Class, and how does it relate to the NetworkX graph?   

                      NetworkX is a Python library. It can create, change, and study complex networks and graphs. It provides classes for creating and working with various types of graphs. It includes directed and undirected graphs. With NetworkX, you can make node edges and do graph algorithms. It also helps visualize graphs. Custom or Memory Graph Class: If someone has created a "Memory Graph Class," it might be a custom class.  


                      2. How do I access and understand the graph features in a NetworkX graph?   

                      To interact with a graph object, create it and use different functions and attributes. Here are the basic steps to access and understand the graph features in a NetworkX graph:   

                      • Import NetworkX   
                      • Create a Graph   
                      • Add Nodes and Edges   
                      • Access Basic Graph Information   
                      • Access Node and Edge Attributes   
                      • Traverse the Graph   
                      • Analyze the Graph   
                      • Visualize the Graph   

                      3. What is an adjacency list dict, and how can I use it to construct a NetworkX graph?   

                      An adjacency list dictionary is often called an "adjacency list dict". It is a data structure used to represent a graph in computer science and graph theory. Sparse graphs have fewer edges than the maximum possible edges. This makes them very useful. In an adjacency list dict, each vertex in the graph has a list of its nearby vertices. This list represents the edges of the graph.   

                      The basic idea is to store the graph's structure by mapping each vertex to a list of its adjacent vertices. This representation is memory-efficient for sparse graphs. You can use it to find the neighbors of a vertex and check if an edge exists.   


                      4. What empty graph structure options are available in the Networkx library?   

                      Here are some common empty graph structures you can create using NetworkX:   

                      • Empty Graph   
                      • DiGraph(directed graph)   
                      • MultiGraph   
                      • MultiDiGraph (Directed MultiGraph)   

                      5. Can you tell me about Directed graphs and their properties in the networkx library?   

                      A Directed Graph is often abbreviated as "DiGraph". A directed graph has vertices and edges that connect pairs of vertices with a direction. In directed graphs, each edge has a direction. It goes from one vertex to another. 


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

                      See similar Kits and Libraries