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
VOC.AI vs. SmartScout: Which Amazon Review Analysis Tool is Right for You?

VOC.AI vs SmartScout: In-Depth Comparison for Amazon Sellers in 2026For Amazon sellers in 2026, choosing the right tool to leverage customer reviews and marketplace data is critical for success. VOC.AI vs SmartScout is a comparison that frequently arises among sellers aiming to gain actionable insig

Jan 9, 2026
Read more
Voice-of-customer
VOC.AI vs. Jungle Scout: Which Amazon Review Analysis Tool is Right for You?

VOC.AI vs Jungle Scout: In-Depth Comparison of Amazon Review Analysis Tools for 2026For Amazon sellers in 2026, leveraging customer reviews is critical for product success and brand growth. Two leading tools—VOC.AI and Jungle Scout—offer distinct approaches to review analysis. While Jungle Scout is

Jan 9, 2026
Read more
Voice-of-customer
VOC.AI vs. Helium 10: Which Amazon Review Analysis Tool is Right for You?

VOC.AI vs Helium 10: The Ultimate Comparison for Amazon Review Analysis in 2026In 2026, Amazon sellers face a rapidly evolving landscape where understanding customer feedback is crucial for long-term success. The main keyword, Helium 10 alternative, is increasingly searched by sellers seeking more n

Jan 9, 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