python实现环形图
时间: 2024-06-26 15:01:13 浏览: 173
python画环形图的方法
在Python中,我们可以使用第三方库如`networkx`和`matplotlib`或`plotly`来创建环形图,也称为饼图或环形统计图。环形图用于展示部分与整体之间的关系,其中每个扇区代表一个类别,而整个圆表示总数。
以下是使用`networkx`和`matplotlib`创建环形图的基本步骤:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 创建一个环形图数据
node_labels = ['A', 'B', 'C', 'D', 'E']
sizes = [30, 40, 20, 10, 5] # 扇区大小,总和应为100
# 使用networkx创建环形图
G = nx.Graph()
G.add_nodes_from(node_labels)
G.add_edges_from([(node_labels[i], node_labels[(i + 1) % len(node_labels)]) for i in range(len(node_labels))])
# 计算环形图的总和
total = sum(sizes)
# 创建环形图
fig, ax = plt.subplots()
pos = nx.circular_layout(G)
nx.draw_networkx_nodes(G, pos, node_color='lightblue', node_size=sizes, alpha=0.8)
nx.draw_networkx_edges(G, pos, width=1.0, alpha=0.5)
nx.draw_networkx_labels(G, pos, labels={node: node for node in node_labels}, font_weight='bold')
# 添加百分比标签
for node, size in zip(G.nodes(), sizes):
ax.annotate(f"{size/total*100:.1f}%", (pos[node], pos[node]), ha='center', va='center', fontsize=12)
plt.axis('equal') # 保持圆形
plt.title('环形图示例')
plt.show()
```
阅读全文