📜  在Python使用 Networkx 完成图形(1)

📅  最后修改于: 2023-12-03 15:07:56.246000             🧑  作者: Mango

在Python使用 Networkx 完成图形

简介

Networkx 是一个用于创建、操作、分析复杂网络的 Python 库。它提供了数据结构、算法与绘图功能,支持多种类型的图形,包括有向图、无向图、加权图等等。其强大的可视化功能和灵活的数据结构设计使得它成为了科学计算、网络研究等领域的重要工具之一。

安装

使用 pip 可以方便地安装 Networkx:

pip install networkx
创建图形

在 Networkx 中,可以使用 GraphDiGraph 类创建图形。 Graph 用于创建无向图,DiGraph 用于创建有向图。

下面的示例展示了如何创建一个简单的无向图:

import networkx as nx

G = nx.Graph()
G.add_node(1)
G.add_nodes_from([2, 3])
G.add_edge(1, 2)
G.add_edges_from([(1, 3), (2, 3)])

这样就创建了一个包含 3 个节点和 3 条边的无向图。

使用 DiGraph 可以创建有向图。以下示例代码创建了一个简单的有向图:

import networkx as nx

G = nx.DiGraph()
G.add_node(1)
G.add_nodes_from([2, 3])
G.add_edge(1, 2)
G.add_edges_from([(1, 3), (2, 3)])
可视化图形

Networkx 还提供了绘制图形的功能,使得我们可以通过可视化的方式更好地理解和分析复杂网络。

以下代码展示了如何使用 matplotlib 绘制一个简单无向图:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
G.add_node(1)
G.add_nodes_from([2, 3])
G.add_edge(1, 2)
G.add_edges_from([(1, 3), (2, 3)])

nx.draw(G, with_labels=True)
plt.show()

执行以上代码,将显示如下图形:

无向图

使用 DiGraph 类似于上面的示例来创建一个有向图,然后可以使用 nx.draw_networkx 函数来可视化图形。

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_node(1)
G.add_nodes_from([2, 3])
G.add_edge(1, 2)
G.add_edges_from([(1, 3), (2, 3)])

nx.draw_networkx(G, with_labels=True)
plt.show()

执行以上代码,将显示如下图形:

有向图

总结

本文主要介绍了如何在 Python 中使用 Networkx 库完成图形的创建和绘制。通过实例代码的演示,更深入地理解了其使用方法,希望能对读者有所帮助。