Back to Blog
April 6, 2024

Network analysis with NetworkX

Network analysis with NetworkX

Creating and Visualizing Graphs with Attributes

📊 In this article, we will explore how to create and visualize graphs with attributes using NetworkX in Python. We will cover the basics of creating a graph, adding nodes and edges, and assigning attributes to them. We will also learn how to visualize the graph and its attributes using NetworkX's built-in functions.

Table of Contents

1. Introduction

2. Creating a Graph

3. Adding Nodes and Edges

4. Assigning Attributes to Nodes and Edges

5. Visualizing the Graph and its Attributes

6. Conclusion

Introduction

Graphs are a powerful tool for modeling and analyzing complex systems. They consist of nodes (also called vertices) and edges (also called links or connections) that connect the nodes. Graphs can be used to model a wide range of systems, including social networks, transportation networks, and biological systems.

In this article, we will focus on creating and visualizing graphs with attributes. Attributes are additional information that can be assigned to nodes and edges. For example, a node in a social network might have attributes such as age, gender, and occupation. An edge in a transportation network might have attributes such as distance, travel time, and cost.

Creating a Graph

To create a graph in NetworkX, we first need to import the necessary modules and create an empty graph. We can create a graph with no nodes or edges using the `Graph()` function:

```python

import networkx as nx

G = nx.Graph()

```

We can also create a graph with nodes and edges using the `add_node()` and `add_edge()` functions:

```python

G = nx.Graph()

G.add_node('A')

G.add_node('B')

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

```

Adding Nodes and Edges

To add nodes and edges to a graph, we use the `add_node()` and `add_edge()` functions. We can add nodes and edges one at a time, or we can add them in bulk using lists or other data structures.

```python

G = nx.Graph()

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

G.add_edges_from([('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E'), ('E', 'A')])

```

Assigning Attributes to Nodes and Edges

To assign attributes to nodes and edges, we use the `add_node()` and `add_edge()` functions with additional arguments that specify the attribute values. We can assign attributes to nodes and edges one at a time, or we can assign them in bulk using dictionaries or other data structures.

```python

G = nx.Graph()

G.add_node('A', gender='M', age=19)

G.add_node('B', gender='F', age=22)

G.add_edge('A', 'B', weight=0.8)

```

Visualizing the Graph and its Attributes

To visualize the graph and its attributes, we use the `draw()` function in NetworkX. We can customize the appearance of the graph and its attributes using various options and parameters.

```python

import matplotlib.pyplot as plt

pos = nx.circular_layout(G)

nx.draw(G, pos, node_color='lightblue', node_size=1000, with_labels=True)

node_labels = nx.get_node_attributes(G, 'gender')

nx.draw_networkx_labels(G, pos, labels=node_labels, font_size=16, font_color='black', font_family='sans-serif')

edge_labels = nx.get_edge_attributes(G, 'weight')

nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, font_size=16, font_color='black', font_family='sans-serif')

plt.axis('off')

plt.show()

```

Conclusion

In this article, we have learned how to create and visualize graphs with attributes using NetworkX in Python. We have covered the basics of creating a graph, adding nodes and edges, and assigning attributes to them. We have also learned how to visualize the graph and its attributes using NetworkX's built-in functions.

By using graphs with attributes, we can model and analyze complex systems more effectively. We can gain insights into the relationships between nodes and the properties of the system as a whole. With the power of NetworkX, we can explore and visualize these systems with ease.

Highlights

- Graphs are a powerful tool for modeling and analyzing complex systems.

- Attributes are additional information that can be assigned to nodes and edges.

- NetworkX is a Python library for creating and analyzing graphs.

- We can create a graph with no nodes or edges using the `Graph()` function.

- We can add nodes and edges to a graph using the `add_node()` and `add_edge()` functions.

- We can assign attributes to nodes and edges using the `add_node()` and `add_edge()` functions with additional arguments.

- We can visualize the graph and its attributes using the `draw()` function in NetworkX.

FAQ

Q: What is NetworkX?

A: NetworkX is a Python library for creating and analyzing graphs. It provides tools for creating, manipulating, and visualizing graphs, as well as algorithms for analyzing graph properties and structures.

Q: What are attributes in a graph?

A: Attributes are additional information that can be assigned to nodes and edges in a graph. They can be used to represent properties of the nodes and edges, such as age, gender, weight, or distance.

Q: How do I visualize a graph with attributes in NetworkX?

A: To visualize a graph with attributes in NetworkX, you can use the `draw()` function to draw the graph, and the `get_node_attributes()` and `get_edge_attributes()` functions to retrieve the attribute values. You can then use the `draw_networkx_labels()` and `draw_networkx_edge_labels()` functions to display the attribute values on the graph.

Related Articles

Voice-of-customer
How to Handle Amazon Negative Reviews

In the competitive landscape of Amazon, managing negative reviews is often the ultimate pain point for sellers. Traditionally, operations teams have been stuck in a reactive cycle: relying on manual checks that are not only labor-intensive but also prone to missing the "golden window" for damage con

Feb 10, 2026
Read more
Voice-of-customer
How to Find Winning Products on Amazon Using Keyword Analysis: A Step-by-Step Guide

In the competitive world of cross-border e-commerce, a product's market acceptance largely depends on one thing: accurately matching user needs.But how do you know which products hold potential? What do consumers actually care about right now? Is "large capacity" the winner this season, or is "porta

Feb 9, 2026
Read more
Voice-of-customer
How to create high-conversion amazon ad campaign with VOC AI and AMC

Are you facing this common frustration with your Amazon campaigns?You’ve allocated a healthy budget, and your Click-Through Rate (CTR) looks promising, yet the final conversion remains underwhelming. In today’s hyper-competitive marketplace, running ad campaigns without deep data visibility is like

Feb 5, 2026
Read more
VOC AI Inc. 160 E Tasman Drive Suite 202 San Jose, CA, 95134 Copyright © 2026 VOC AI Inc.All Rights Reserved. Terms & Conditions • Privacy Policy
This website uses cookies
VOC AI uses cookies to ensure the website works properly, to store some information about your preferences, devices, and past actions. This data is aggregated or statistical, which means that we will not be able to identify you individually. You can find more details about the cookies we use and how to withdraw consent in our Privacy Policy.
We use Google Analytics to improve user experience on our website. By continuing to use our site, you consent to the use of cookies and data collection by Google Analytics.
Are you happy to accept these cookies?
Accept all cookies
Reject all cookies