当前位置:首页 > Python > 正文

Python pyplot基础图表函数教程 - 折线图、散点图、柱状图、饼图和直方图

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()
Python pyplot基础图表函数教程 - 折线图、散点图、柱状图、饼图和直方图  Matplotlib pyplot 数据可视化 折线图 散点图 柱状图 饼图 直方图 2025 第1张

关键参数说明

参数 说明 常用值
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()
Python pyplot基础图表函数教程 - 折线图、散点图、柱状图、饼图和直方图  Matplotlib pyplot 数据可视化 折线图 散点图 柱状图 饼图 直方图 2025 第2张

关键参数说明

参数 说明 常用值
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()
Python pyplot基础图表函数教程 - 折线图、散点图、柱状图、饼图和直方图  Matplotlib pyplot 数据可视化 折线图 散点图 柱状图 饼图 直方图 2025 第3张

水平柱状图

# 创建水平柱状图
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()
Python pyplot基础图表函数教程 - 折线图、散点图、柱状图、饼图和直方图  Matplotlib pyplot 数据可视化 折线图 散点图 柱状图 饼图 直方图 2025 第4张

关键参数说明

参数 说明 常用值
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()
Python pyplot基础图表函数教程 - 折线图、散点图、柱状图、饼图和直方图  Matplotlib pyplot 数据可视化 折线图 散点图 柱状图 饼图 直方图 2025 第5张

关键参数说明

参数 说明 常用值
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):展示数值数据的分布情况

掌握这些基础图表函数后,您已经能够应对大部分基本的数据可视化需求。实际应用中,通常需要组合使用这些图表,并调整样式参数以满足特定需求。

发表评论