🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

🔧 基础工作流程

📈 使用 Matplotlib 绘图

📊 使用 Seaborn 绘图

🤝 协同使用 Matplotlib 与 Seaborn

💡 实用技巧与最佳实践

💎 核心要点总结


用 Matplotlib 和 Seaborn 进行数据可视化是 Python 数据分析的核心技能。下面这张表格帮你快速把握它们的核心定位,然后我们再深入具体的用法。

特性维度

Matplotlib

Seaborn

定位

基础且功能全面的绘图库,提供像素级的精细控制

基于Matplotlib的高级统计绘图库,默认样式美观,API简洁

核心优势

灵活性强,几乎能绘制任何类型的图表;自定义程度极高

专为统计可视化设计,通常只需一行代码就能生成信息丰富的统计图形

适用场景

需要高度定制化的图表、出版级图形、非标准图表

快速进行数据探索、制作统计图表(如分布、关系、分类数据可视化)

语法风格

显式且相对底层,需要手动设置许多细节

声明式且高级,与Pandas的DataFrame无缝集成,很多细节自动处理

默认样式

基础样式比较简洁

提供多种精美的主题和颜色方案,图表默认更具吸引力

🔧 基础工作流程

开始绘图前,需要先搭建好环境并准备好数据。

  1. 安装与导入

    确保已安装必要的库。如果尚未安装,可以使用 pip 命令安装:

    pip install matplotlib seaborn pandas numpy

    在代码中,通常这样导入:

    import matplotlib.pyplot as plt  # 导入Matplotlib的绘图模块
    import seaborn as sns            # 导入Seaborn
    import pandas as pd              # 用于数据处理
    import numpy as np               # 用于数值计算
  2. 数据准备

    数据通常存储在 Pandas 的 DataFrame 中。Seaborn 尤其擅长直接处理 DataFrame。

    # 示例:创建数据
    data = {
        'Category': ['A', 'B', 'C', 'A', 'B', 'C'],
        'Values': [10, 15, 7, 12, 18, 5],
        'Number': [1, 2, 3, 4, 5, 6]
    }
    df = pd.DataFrame(data)
    
    # Seaborn内置了一些经典数据集,便于练习
    tips = sns.load_dataset("tips")  # 加载小费数据集

📈 使用 Matplotlib 绘图

Matplotlib 提供了细致的控制,适合需要精确自定义的图表。

  • 基础框架与常用图表

    最简单的流程是创建图形、绘制、然后添加标签和显示。

    # 创建图形和坐标轴
    plt.figure(figsize=(8, 6))  # figsize设置图形大小(宽×高,单位英寸)
    
    # 绘制折线图
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    plt.plot(x, y, marker='o', linestyle='--', color='blue', label='示例线')  # marker:点标记, linestyle:线型
    
    # 添加标签和标题
    plt.xlabel('X轴标签')
    plt.ylabel('Y轴标签')
    plt.title('一个简单的折线图')
    plt.legend()  # 显示图例
    
    # 显示图形
    plt.show()

    绘制散点图使用 plt.scatter(),柱状图使用 plt.bar()

  • 面向对象(OO)风格(推荐)

    对于复杂图形,使用面向对象风格能更清晰、灵活地控制子图。

    # 创建包含子图的画布:1行2列
    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
    
    # 在第一个子图上绘制
    ax1.plot(x, y, 'r-')  # 'r-' 代表红色实线
    ax1.set_title('子图1')
    
    # 在第二个子图上绘制
    ax2.bar(df['Category'], df['Values'])
    ax2.set_title('子图2')
    
    # 自动调整布局
    fig.tight_layout()
    plt.show()

📊 使用 Seaborn 绘图

Seaborn 简化了许多常见统计图表的绘制过程。

  • 设置主题

    在绘图前设置主题,可快速美化所有图表(包括Matplotlib绘制的图形)。

    sns.set_theme(style="whitegrid")  # 设置主题风格,如 whitegrid, darkgrid, ticks 等
  • 绘制常见统计图表

    散点图与关系图:观察两个连续变量之间的关系。

    # 使用Seaborn内置tips数据集
    tips = sns.load_dataset("tips")
    sns.scatterplot(data=tips, x='total_bill', y='tip', hue='time', style='smoker', size='size')
    plt.title('小费与总账单金额关系')
    plt.show()

    分布图:查看单个变量的分布情况。

    # 直方图与密度曲线
    sns.histplot(data=tips, x='total_bill', kde=True)  # kde=True 增加密度曲线
    plt.show()
    
    # 箱线图:观察分布、中位数、异常值
    sns.boxplot(data=tips, x='day', y='total_bill')
    plt.show()

    热力图:展示变量间的相关性矩阵。

    # 计算数值型列之间的相关系数
    correlation_matrix = tips.select_dtypes(include=[np.number]).corr()
    sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')  # annot=True 显示数值
    plt.title('变量相关性热力图')
    plt.show()

🤝 协同使用 Matplotlib 与 Seaborn

可以利用 Seaborn 快速绘制出美观的统计图形,然后使用 Matplotlib 进行细节上的微调。

# 使用面向对象风格创建画布和坐标轴
fig, ax = plt.subplots(figsize=(10, 6))

# 用Seaborn在指定坐标轴上绘图
sns.boxplot(data=tips, x='day', y='total_bill', ax=ax)

# 用Matplotlib精细调整
ax.set_title('每日账单金额分布(精细化调整后)', fontsize=16)
ax.set_xlabel('星期几', fontsize=12)
ax.set_ylabel('总账单金额(美元)', fontsize=12)
ax.tick_params(axis='x', rotation=45)  # 调整X轴标签角度

plt.tight_layout()
plt.show()

💡 实用技巧与最佳实践

  1. 图表选择:根据目标和数据特点选择最合适的图表类型。例如,比较类别间数值用柱状图,查看趋势用折线图,观察分布用直方图或箱线图,探索关系用散点图。

  2. 避免图表信息过载:数据点过多时,可调整点透明度(alpha参数)、进行数据采样或使用聚合图表(如二维直方图)来增强可读性。

  3. 颜色与样式:优先选择色盲友好的配色方案。Seaborn 的 color_palette()函数提供了多种精心设计的调色板。

  4. 清晰标注:确保图表有明确的标题、坐标轴标签。必要时使用图例。这是有效传达信息的关键。

  5. 探索性数据分析(EDA):在深入复杂分析前,多用散点图、直方图、箱线图等快速浏览数据分布、异常值和变量间关系。

💎 核心要点总结

  • Matplotlib​ 是基础且强大的绘图库,可控性极高,适合绘制各种图表并进行精细化定制。

  • Seaborn​ 是基于 Matplotlib 的高级封装,默认美观擅长统计可视化,能大幅提升探索性数据分析的效率。

  • 实践中,协同使用两者是最佳方式:用 Seaborn 快速出图,用 Matplotlib 的丰富接口做后期调整。

希望这些介绍能助你顺利开启数据可视化之旅!试着用示例代码操作一下,慢慢就能掌握如何为你的数据选择最合适的“语言”来讲述故事。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐