Python绘图与数据可视化实战指南

目录

一、 基础工具库

1、Matplotlib(最基础的绘图库)

2、Seaborn(基于 Matplotlib 的高级统计图表库)

3、Pandas 内置绘图(适合快速探索数据)

二、常见图表类型及代码

三、学习技巧


一、 基础工具库

1、Matplotlib(最基础的绘图库)

  • 安装pip install matplotlib

  • 核心概念

  • Figure:画布(类似一张纸)

  • Axes:坐标系(在画布上划分绘图区域)

  • 快速上手

  • import matplotlib.pyplot as plt
    
    # 准备数据
    x = [1, 2, 3, 4]
    y = [10, 20, 15, 30]
    
    # 创建画布和坐标系
    plt.figure(figsize=(8, 4))  # 设置画布大小
    plt.plot(x, y, label='折线', color='blue', linestyle='--')  # 画折线图
    plt.title("我的第一个图表")  # 标题
    plt.xlabel("X轴")  # X轴标签
    plt.ylabel("Y轴")  # Y轴标签
    plt.legend()  # 显示图例
    plt.grid(True)  # 显示网格
    plt.show()  # 显示图表

    运行结果:

    代码分析:

    (1)导入库:

    import matplotlib.pyplot as plt
  • 作用:导入 Matplotlib 的绘图模块,并简写为 plt(行业惯例)。

  • 注意:需提前安装库(命令行运行 pip install matplotlib)。

  • (2)准备数据

    x = [1, 2, 3, 4]
    y = [10, 20, 15, 30]
  • 作用:定义 X 轴和 Y 轴的数据(两个列表长度需一致)。

  • 对应关系(1,10)(2,20)(3,15)(4,30) 四个坐标点。

  • (3)创建画布

    plt.figure(figsize=(8, 4))
  • 作用:创建画布并设置尺寸为 8 英寸(宽)× 4 英寸(高)。

  • 扩展:若不设置尺寸,Matplotlib 会使用默认大小。

  • (4)绘制折线图

    plt.plot(x, y, label='示例折线', color='blue', linestyle='--')
  • 参数解析

  • x, y:数据点坐标。

  • label:图例标签名称。

  • color:线条颜色(支持英文名、十六进制码等)。

  • linestyle:线型('-' 实线,':' 点线,'--' 虚线等)。

  • (5)添加图表元素

    plt.title("我的第一个图表")  # 标题
    plt.xlabel("X轴")          # X轴标签
    plt.ylabel("Y轴")          # Y轴标签
    plt.legend()               # 显示图例
    plt.grid(True)             # 显示网格
  • 细节

  • 标题和轴标签支持通过 fontsize 参数调整字体大小(如 fontsize=12)。

  • plt.legend() 依赖 plot() 中的 label 参数生成图例。

  • (6)显示图表

    plt.show()
  • 作用:弹出窗口显示绘制好的图表。

  • 注意:在脚本中必须调用此方法才能显示图表(Jupyter Notebook 中可能自动显示)。

  • (7)扩展学习建议

    1. 修改样式:尝试更改 color 和 linestyle,观察图表变化。

    2. 添加更多数据:扩展 x 和 y 列表,绘制更复杂的曲线。

    3. 其他图表类型:探索 plt.bar()(柱状图)、plt.scatter()(散点图)等函数。

    4. 保存图表:在 plt.show() 前添加 plt.savefig('chart.png') 可保存为图片。

    2、Seaborn(基于 Matplotlib 的高级统计图表库)

  • 特点:简化复杂图表(如热力图、分布图)的代码

  • 安装pip install seaborn

  • 快速示例

  • ​import matplotlib.pyplot as plt
    import seaborn as sns
    tips = sns.load_dataset("tips")  # 内置示例数据集
    
    # 绘制箱线图
    sns.boxplot(x="day", y="total_bill", data=tips)
    plt.show()
    
    ​

    运行结果:

    代码分析:

    (1)导入库

    (2)加载数据集

    tips = sns.load_dataset("tips")  # 内置示例数据集
  • 数据集说明

  • Seaborn 内置的餐厅小费数据集

  • 包含 244 行数据,列包括:

  • total_bill:总消费金额(美元)

  • tip:小费金额

  • day:星期几(Thur, Fri, Sat, Sun)

  • 其他列:性别、是否吸烟、用餐时间等。

  • (3)绘制箱线图

    sns.boxplot(x="day", y="total_bill", data=tips)
  • 参数解析

  • x="day":将星期几(分类变量)放在 X 轴

  • y="total_bill":将消费金额(数值变量)放在 Y 轴

  • data=tips:指定数据来源

  • 箱线图作用

  • 展示不同星期几的消费金额分布

  • 显示中位数、四分位数、离群值等统计信息

  • (4)显示图表

    plt.show()

    注意:虽然使用了 Seaborn,但最终仍需要通过 Matplotlib 的 plt.show() 显示图表

    (5)最终效果

  • 生成 4 个箱线图(对应星期四到星期日)

  • 每个箱线图展示当天所有顾客消费金额的分布情况

  • (6)常见问题解答

             Q1:为什么选择箱线图?

  • 适合比较不同类别间的数值分布

  • 能直观显示数据的中位数、波动范围和异常值

  •         Q2:数据格式要求?

  • X 轴一般为分类变量(字符串或有限类别)

  • Y 轴为连续数值变量

  •         Q3:如何保存图表?

  • 在 plt.show() 前添加:

  • plt.savefig("boxplot.png", dpi=300)

    3、Pandas 内置绘图(适合快速探索数据)

    直接调用 DataFrame 的 .plot() 方法

    # 导入必要库
    import pandas as pd
    import matplotlib.pyplot as plt  # 必须添加
    
    # 创建 DataFrame
    df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})
    
    # 绘制柱状图
    df.plot(kind='bar')
    
    # 显示图表
    plt.show()  # 确保调用此方法

    运行结果:

    代码分析:

    (1) 导入库

    import pandas as pd
    import matplotlib.pyplot as plt  # 必须添加
  • 作用

  • pandas 用于数据处理(创建 DataFrame)

  • matplotlib.pyplot 是绘图的核心模块

  • 注意

  • 虽然 df.plot() 是 pandas 的方法,但底层依然依赖 Matplotlib,所以必须导入 plt 并用 plt.show() 显示图表

  • (2) 创建 DataFrame

    df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})

    结果

       A  B
    0  1  4
    1  2  5
    2  3  6
  • 绘图关键点

  • 默认使用 DataFrame 的索引(0,1,2)作为 X 轴

  • 列名 A 和 B 会自动成为图例中的标签

  • (3) 绘制柱状图

    df.plot(kind='bar')

    等价写法

    df.plot.bar()  # 更简洁的写法
  • 参数说明

  • kind='bar':指定柱状图类型(若想要水平柱状图用 kind='barh'

  • 默认颜色会自动分配(可通过 color=['blue','orange'] 自定义)

  • (4) 显示图表

    plt.show()
  • 为什么必须

  • 在非 Jupyter 环境中(如普通 Python 脚本),必须调用此方法才会显示图表

  • 在 Jupyter Notebook 中可配合 %matplotlib inline 魔法命令自动显示

  • 二、常见图表类型及代码

    图表类型 用途 代码片段
    折线图 趋势分析 plt.plot(x, y)
    散点图 相关性分析 plt.scatter(x, y)
    柱状图 分类数据对比 plt.bar(categories, values)
    直方图 数据分布 plt.hist(data, bins=20)
    箱线图 数据分布与异常值检测 sns.boxplot(x='category', y='value', data=df)
    热力图 矩阵数据/相关性矩阵 sns.heatmap(corr_matrix)

    三、学习技巧

    1. 从简单图表开始:先掌握折线图、柱状图等基础图表。

    2. 修改示例代码:调整颜色、标签、标题等参数,观察变化。

    3. 结合数据分析:用真实数据(如 CSV 文件)练习绘图。

    4. 善用文档

    作者:晨曦543210

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python绘图与数据可视化实战指南

    发表回复