怎么样Python画树状图
时间: 2024-05-13 10:11:27 浏览: 128
Python如何生成树形图案
5星 · 资源好评率100%
Python 有很多库可以画树状图,其中比较流行的有 `matplotlib`、`graphviz` 和 `networkx`。
以下是使用 `matplotlib` 和 `networkx` 两个库画树状图的示例代码:
使用 `matplotlib`:
```python
import matplotlib.pyplot as plt
# 定义节点和边
nodes = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')]
# 画图
pos = {node: (idx, -idx) for idx, node in enumerate(nodes)}
plt.figure(figsize=(6, 6))
nx.draw_networkx_nodes(nodes, pos, node_size=2000, node_color='lightblue')
nx.draw_networkx_labels(nodes, pos, font_size=20, font_family='sans-serif')
nx.draw_networkx_edges(edges, pos, width=2, alpha=0.5, edge_color='gray')
plt.axis('off')
plt.show()
```
使用 `networkx`:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 定义节点和边
nodes = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')]
# 画图
plt.figure(figsize=(6, 6))
G = nx.DiGraph()
G.add_nodes_from(nodes)
G.add_edges_from(edges)
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos, node_size=2000, node_color='lightblue')
nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif')
nx.draw_networkx_edges(G, pos, width=2, alpha=0.5, edge_color='gray')
plt.axis('off')
plt.show()
```
这两个示例代码都会生成一个树状图,其中节点用字母表示,边用线段表示。您可以根据需要自行修改节点和边的定义,以及调整参数来美化图形。
阅读全文