Python pyplot基础图表函数教程 - 折线图、散点图、柱状图、饼图和直方图
- Python
- 2025-08-01
- 1695
Python pyplot基础图表函数教程
Matplotlib是Python中最流行的数据可视化库,而pyplot
模块提供了类似MATLAB的绘图接口。本教程将介绍pyplot中最常用的基础图表函数,包括折线图、散点图、柱状图、饼图和直方图。
1. 折线图 - plt.plot()
折线图用于展示数据随时间或有序类别的变化趋势,是数据可视化中最常用的图表类型之一。
基本用法
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 5, 3]
# 创建折线图
plt.plot(x, y,
color='blue', # 线条颜色
linestyle='-', # 线型(实线)
linewidth=2, # 线宽
marker='o', # 数据点标记
markersize=8) # 标记大小
# 添加标题和标签
plt.title('基础折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
# 显示图表
plt.show()
关键参数说明
参数 | 说明 | 常用值 |
---|---|---|
color | 线条颜色 | 'blue', 'red', '#00FF00', '0.5'(灰度) |
linestyle | 线条样式 | '-' (实线), '--' (虚线), '-.' (点划线), ':' (点线) |
linewidth | 线条宽度 | 数值,如1.5, 2.0 |
marker | 数据点标记 | 'o'(圆形), 's'(方形), '^'(三角形), 'D'(菱形) |
markersize | 标记大小 | 数值,如8, 10 |
提示: 使用plt.plot(x, y, 'ro--')
这样的简写形式可以同时指定颜色、标记和线型。
2. 散点图 - plt.scatter()
散点图用于展示两个变量之间的关系,帮助发现变量之间的相关性或分布模式。
基本用法
import numpy as np
# 生成随机数据
np.random.seed(42)
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 500 * np.random.rand(50)
# 创建散点图
plt.scatter(x, y,
c=colors, # 点颜色
s=sizes, # 点大小
alpha=0.6, # 透明度
cmap='viridis') # 颜色映射
# 添加标题和标签
plt.title('散点图示例')
plt.xlabel('X值')
plt.ylabel('Y值')
# 添加颜色条
plt.colorbar()
plt.show()
关键参数说明
参数 | 说明 | 常用值 |
---|---|---|
c | 点颜色 | 颜色字符串、RGB元组或数值序列 |
s | 点大小 | 标量或与x相同长度的数组 |
alpha | 透明度 | 0(完全透明)到1(完全不透明) |
cmap | 颜色映射 | 'viridis', 'plasma', 'inferno', 'magma', 'cividis' |
marker | 点形状 | 'o', 's', '^', 'D', 'P'等 |
3. 柱状图 - plt.bar()
柱状图用于比较不同类别的数据大小,适合展示离散数据的分布情况。
基本用法
# 准备数据
categories = ['苹果', '香蕉', '橙子', '葡萄', '芒果']
values = [35, 28, 45, 20, 38]
# 创建垂直柱状图
plt.bar(categories, values,
color=['#ff9999','#66b3ff','#99ff99','#ffcc99','#c2c2f0'],
edgecolor='gray', # 边框颜色
width=0.7) # 柱宽
# 添加标题和标签
plt.title('水果销量柱状图')
plt.xlabel('水果种类')
plt.ylabel('销量(千克)')
# 旋转X轴标签
plt.xticks(rotation=15)
plt.show()
水平柱状图
# 创建水平柱状图
plt.barh(categories, values,
color='skyblue',
height=0.7) # 柱高度
plt.title('水果销量水平柱状图')
plt.xlabel('销量(千克)')
plt.ylabel('水果种类')
plt.show()
关键参数说明
参数 | 说明 | 常用值 |
---|---|---|
width | 柱宽度(垂直柱状图) | 0.5-0.8之间的值 |
height | 柱高度(水平柱状图) | 0.5-0.8之间的值 |
color | 柱填充颜色 | 颜色名称、十六进制值或颜色列表 |
edgecolor | 边框颜色 | 颜色名称或十六进制值 |
alpha | 透明度 | 0-1之间的值 |
4. 饼图 - plt.pie()
饼图用于展示各部分占整体的比例关系,适合显示简单的比例分配情况。
基本用法
# 准备数据
sizes = [15, 30, 25, 10, 20]
labels = ['苹果', '香蕉', '橙子', '葡萄', '芒果']
colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99','#c2c2f0']
explode = (0, 0.1, 0, 0, 0) # 突出第二部分
# 创建饼图
plt.pie(sizes,
explode=explode,
labels=labels,
colors=colors,
autopct='%1.1f%%', # 显示百分比
shadow=True, # 添加阴影
startangle=90) # 起始角度
# 添加标题
plt.title('水果销量占比饼图')
plt.axis('equal') # 保证饼图是圆形
plt.show()
关键参数说明
参数 | 说明 | 常用值 |
---|---|---|
labels | 各部分标签 | 字符串列表 |
autopct | 显示百分比格式 | '%1.1f%%', '%d%%', None |
explode | 突出显示某些部分 | 长度与sizes相同的元组 |
colors | 各部分颜色 | 颜色列表 |
startangle | 起始角度 | 0-360之间的值 |
shadow | 是否添加阴影 | True/False |
提示: 当类别超过5-7个时,考虑使用柱状图代替饼图,因为过多的扇区会使饼图难以阅读。
5. 直方图 - plt.hist()
直方图用于展示数值数据的分布情况,特别适合显示连续数据的分布频率。
基本用法
import numpy as np
# 生成正态分布数据
data = np.random.normal(170, 10, 1000) # 均值170, 标准差10, 1000个点
# 创建直方图
plt.hist(data,
bins=30, # 柱的数量
color='skyblue',
edgecolor='black',
alpha=0.7,
density=True) # 显示密度而非计数
# 添加标题和标签
plt.title('身高分布直方图')
plt.xlabel('身高(cm)')
plt.ylabel('频率密度')
# 添加参考线
plt.axvline(data.mean(), color='red', linestyle='dashed', linewidth=2)
# 添加图例
plt.legend(['均值', '身高分布'])
plt.show()
关键参数说明
参数 | 说明 | 常用值 |
---|---|---|
bins | 柱的数量或边界 | 整数或序列 |
range | 数据范围 | (min, max)元组 |
density | 是否显示密度 | True/False |
cumulative | 是否显示累积分布 | True/False |
histtype | 直方图类型 | 'bar'(默认), 'barstacked', 'step', 'stepfilled' |
orientation | 方向 | 'vertical'(垂直), 'horizontal'(水平) |
总结
Matplotlib的pyplot模块提供了丰富的数据可视化功能,本教程涵盖了5种最基础且最常用的图表类型:
- 折线图(plt.plot):展示数据随时间或有序类别的变化趋势
- 散点图(plt.scatter):展示两个变量之间的关系和分布
- 柱状图(plt.bar):比较不同类别的数据大小
- 饼图(plt.pie):显示各部分占整体的比例关系
- 直方图(plt.hist):展示数值数据的分布情况
掌握这些基础图表函数后,您已经能够应对大部分基本的数据可视化需求。实际应用中,通常需要组合使用这些图表,并调整样式参数以满足特定需求。
本文由访客于2025-08-01发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20257059.html
发表评论