python 画结构图
Python 是一种强大的编程语言,由于其易于学习、易于浏览和易于编写的特点,被愈来愈多的程序员所爱好。在Python 3.x 中,我们可使用第三方库 Matplotlib 来生成各种各样的图表,包括结构图。下面将介绍怎样使用Python 画结构图。
首先,我们需要导入相关的库:
import matplotlib.pyplot as plt import networkx as nx
其中,Matplotlib 是用于绘制图表的主要库,而 NetworkX 是用于创建和操作图形结构的库。
接下来,我们可使用 NetworkX 来创建一个空图,并添加节点和边:
G = nx.DiGraph() # 创建有向图 G.add_node("A") G.add_nodes_from(["B", "C", "D", "E"]) # 添加多个节点 G.add_edge("A", "B", weight=0.6) G.add_edge("A", "C", weight=0.2) G.add_edge("C", "D", weight=0.1) G.add_edge("C", "E", weight=0.7)
这段代码表示创建了一个有向图,其中有五个节点,分别为 A、B、C、D、E,其中 A 与 B 之间有一条边,边的权重为 0.6,A 和 C 之间有一条边,权重为 0.2,C 和 D 之间有一条边,权重为 0.1,C 和 E 之间有一条边,权重为 0.7。
接下来,我们可使用 Matplotlib 来对图形进行绘制:
pos = nx.spring_layout(G) # 定义节点位置 nx.draw_networkx_nodes(G, pos, node_color="r", node_size=500) # 绘制节点 nx.draw_networkx_edges(G, pos, width=1.0, alpha=0.5) # 绘制边 nx.draw_networkx_labels(G, pos, font_size=10, font_family="sans-serif") # 绘制标签 labels = nx.get_edge_attributes(G, "weight") # 获得边的权重 nx.draw_networkx_edge_labels(G, pos, edge_labels=labels, font_size=8) # 绘制边的权重值 plt.axis("off") # 关闭坐标轴 plt.show() # 显示图形
这段代码表示使用 NetworkX 提供的 spring_layout 函数来定义节点位置,然后使用 draw_networkx_nodes、draw_networkx_edges 和 draw_networkx_labels 函数分别绘制节点、边和标签,并使用 get_edge_attributes 函数获得边的权重,再使用 draw_networkx_edge_labels 函数来绘制边的权重值。
最后,我们通过调用 axis 函数关闭坐标轴,并调用 show 函数来显示图形。
综上所述,Python 语言在画结构图方面也有其独到的地方,使用 Matplotlib 和 NetworkX 库可以轻松地生成各种各样的结构图。
文章来源:丸子建站
文章标题:python 画结构图
https://www.wanzijz.com/view/59667.html