您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Python如何画饼状图、折线图、圈图
数据可视化是数据分析中不可或缺的一环,Python凭借其丰富的库生态系统(如Matplotlib、Seaborn、Plotly等)成为数据可视化的利器。本文将详细介绍如何使用Python绘制三种常见图表:**饼状图**、**折线图**和**圈图**(环形图),并提供完整代码示例。
---
## 一、绘制饼状图(Pie Chart)
饼状图适用于展示各类别在整体中的占比关系,通过扇形面积直观呈现比例分布。
### 1.1 基础饼状图
使用Matplotlib的`pie()`函数即可快速绘制:
```python
import matplotlib.pyplot as plt
# 数据准备
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']
# 绘制饼图
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title("基础饼状图示例")
plt.axis('equal') # 保证圆形
plt.show()
explode
参数shadow=True
startangle
参数explode = (0.1, 0, 0, 0) # 突出第一块
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
折线图常用于展示数据随时间或有序类别的变化趋势。
import numpy as np
# 生成示例数据
x = np.arange(1, 11)
y = np.random.randint(1, 100, 10)
plt.plot(x, y, marker='o', linestyle='--', color='b')
plt.title("月度销售额趋势")
plt.xlabel("月份")
plt.ylabel("销售额(万元)")
plt.grid(True)
plt.show()
y2 = np.random.randint(1, 100, 10)
plt.plot(x, y, label='产品A')
plt.plot(x, y2, label='产品B')
plt.legend() # 显示图例
import seaborn as sns
sns.set_style("darkgrid") # 设置背景风格
sns.lineplot(x=x, y=y, marker='o')
圈图是饼状图的变体,中间留白,适合强调部分与整体的关系。
通过设置wedgeprops
参数实现:
plt.pie(sizes, labels=labels, colors=colors,
wedgeprops={'width': 0.5}) # 宽度控制环的厚度
plt.title("环形图示例")
使用极坐标系叠加多个环形:
# 内圈数据
inner_sizes = [20, 30, 50]
inner_labels = ['X', 'Y', 'Z']
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, radius=1.5,
wedgeprops=dict(width=0.5, edgecolor='w'))
ax.pie(inner_sizes, labels=inner_labels, radius=1,
wedgeprops=dict(width=0.5, edgecolor='w'))
ax.set(aspect="equal")
plt.title("双层环形图")
图表类型 | 适用场景 | 推荐库 |
---|---|---|
饼状图 | 展示比例分布 | Matplotlib |
折线图 | 趋势分析、时间序列 | Matplotlib/Seaborn |
圈图 | 强调部分与整体关系 | Matplotlib |
# 饼状图+折线图+圈图综合示例
fig, axes = plt.subplots(1, 3, figsize=(18, 5))
# 饼图
axes[0].pie(sizes, labels=labels, autopct='%1.1f%%')
axes[0].set_title("饼状图")
# 折线图
axes[1].plot(x, y, marker='o')
axes[1].set_title("折线图")
# 圈图
axes[2].pie(sizes, wedgeprops={'width':0.5})
axes[2].set_title("圈图")
plt.tight_layout()
plt.show()
通过上述方法,您可以轻松实现Python中的数据可视化需求。如需更复杂的交互式图表,推荐尝试Plotly或Pyecharts库,它们支持动态交互和更丰富的视觉效果。 “`
(注:实际字数约1100字,可根据需要调整代码注释或补充理论说明以达到精确字数)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。