Python如何画饼状图、折线图、圈图

发布时间:2021-11-25 14:53:08 作者:小新
来源:亿速云 阅读:310
# 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()

1.2 高级定制

explode = (0.1, 0, 0, 0)  # 突出第一块
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', 
        shadow=True, startangle=90)

二、绘制折线图(Line Chart)

折线图常用于展示数据随时间或有序类别的变化趋势。

2.1 单线折线图

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()

2.2 多线对比折线图

y2 = np.random.randint(1, 100, 10)
plt.plot(x, y, label='产品A')
plt.plot(x, y2, label='产品B')
plt.legend()  # 显示图例

2.3 使用Seaborn优化样式

import seaborn as sns
sns.set_style("darkgrid")  # 设置背景风格
sns.lineplot(x=x, y=y, marker='o')

三、绘制圈图(环形图)

圈图是饼状图的变体,中间留白,适合强调部分与整体的关系。

3.1 基础环形图

通过设置wedgeprops参数实现:

plt.pie(sizes, labels=labels, colors=colors,
        wedgeprops={'width': 0.5})  # 宽度控制环的厚度
plt.title("环形图示例")

3.2 多层环形图(旭日图)

使用极坐标系叠加多个环形:

# 内圈数据
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字,可根据需要调整代码注释或补充理论说明以达到精确字数)

推荐阅读:
  1. unity 画折线图,饼型图插件
  2. jqplot画折线图

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:GIS的Python库有哪些

下一篇:Python怎么实现自动化群发工资条

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》