当前位置:首页>python>Python可视化Seaborn全攻略 | Part.4

Python可视化Seaborn全攻略 | Part.4

  • 2026-10-10 19:10:22
Python可视化Seaborn全攻略 | Part.4

第四篇:Seaborn实战篇|散点图详解,展示变量关系超直观📊

经过前三篇的铺垫,今天终于进入Seaborn实战环节啦!

散点图是日常可视化中使用频率最高的图表之一,核心作用是展示两个数值型变量之间的关系(比如“账单金额与小费金额的相关性”“身高与体重的关系”)。

用Seaborn绘制散点图,代码极简,还能一键分组、自定义样式,比Matplotlib更强大、更好看,新手直接复制就能运行👇

🔍 核心函数:sns.scatterplot() 散点图绘制

Seaborn绘制散点图的核心函数是sns.scatterplot(),参数简单易懂,我们分“基础版”和“进阶版”讲解,循序渐进,新手也能跟上。

✅ 基础散点图(直接复制运行)

用小费数据集,展示“账单金额”与“小费金额”的关系,最基础的散点图,3行核心代码搞定:

import seaborn as snsimport matplotlib.pyplot as plt# 自定义主题:解决中文乱码+设置字体、线条、配色sns.set(    style="whitegrid",  # 基础主题    font_scale=1.2,     # 字体缩放比例(1.2倍更清晰)    palette="Set2",     # 全局配色方案    rc={        "font.sans-serif": ["SimHei"],  # 解决中文乱码(必加)        "axes.facecolor": "#F5F5F5",    # 图表背景色(浅灰色,更柔和)        "lines.linewidth": 2            # 线条宽度(更醒目)    })# 1. 加载数据tips = sns.load_dataset("tips")# 2. 绘制基础散点图:x轴=账单金额,y轴=小费金额sns.scatterplot(x="total_bill", y="tip", data=tips)# 3. 自定义标题和坐标轴标签(提升可读性)plt.title("账单金额与小费金额关系散点图")plt.xlabel("账单金额(元)")plt.ylabel("小费金额(元)")# 显示图表plt.show()

✅ 进阶散点图:按类别分组,信息量拉满

很多时候,我们需要对比不同类别的数据关系(比如“不同性别、不同用餐时间的小费差异”),通过hue(颜色)、style(形状)参数,就能轻松实现分组展示:

import seaborn as snsimport matplotlib.pyplot as plt# 自定义主题:解决中文乱码+设置字体、线条、配色sns.set(    style="whitegrid",  # 基础主题    font_scale=1.2,     # 字体缩放比例(1.2倍更清晰)    palette="Set2",     # 全局配色方案    rc={        "font.sans-serif": ["SimHei"],  # 解决中文乱码(必加)        "axes.facecolor": "#F5F5F5",    # 图表背景色(浅灰色,更柔和)        "lines.linewidth": 2            # 线条宽度(更醒目)    })tips = sns.load_dataset("tips")# 1. 按性别分组(hue=性别),不同性别用不同颜色sns.scatterplot(x="total_bill", y="tip", hue="sex", data=tips)plt.title("按性别分组:账单金额与小费金额关系")plt.show()# 2. 按性别(颜色)+ 用餐时间(形状)双重分组sns.scatterplot(x="total_bill", y="tip", hue="sex", style="time", data=tips)plt.title("按性别+用餐时间分组:账单金额与小费金额关系")plt.show()# 3. 按人数分组,用散点大小表示人数(人数越多,散点越大)sns.scatterplot(x="total_bill", y="tip", size="size", data=tips)plt.title("按人数分组:账单金额与小费金额关系")plt.show()

💡 避坑小技巧

  • 数据量过大时,散点会重叠?用alpha参数设置透明度(0-1之间),比如alpha=0.6,重叠部分会更清晰;

  • 分组颜色不好看?用palette参数自定义配色,比如palette="Set2",Seaborn内置多种配色方案;

  • 散点太小/太大?用s参数设置散点大小,比如s=80,数值越大,散点越大。

✅ 自定义散点图样式(实战常用)

结合前面的主题设置,自定义散点图的颜色、边框、透明度,打造专属高颜值散点图:

import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset("tips")sns.set_style("whitegrid")# 自定义散点图:颜色+边框+透明度+大小sns.scatterplot(    x="total_bill", y="tip", data=tips,    color="#FF6B6B",  # 散点颜色(红色)    edgecolor="black",  # 散点边框颜色(黑色)    alpha=0.7,  # 透明度(0.7,避免重叠)    s=100,  # 散点大小    hue="sex",  # 按性别分组    palette="Set1"  # 分组配色)

📌 第四篇小结+下篇预告

本篇我们掌握了Seaborn散点图的基础绘制、分组展示和样式自定义,能轻松应对日常“展示变量关系”的可视化需求~

下篇我们将讲解另一种高频图表——线图,教你展示数据的变化趋势(比如“月份与航班数量的变化”),适合时间序列分析,记得关注!


往期回顾:

Python学习笔记——从入门到报废(十九、第三方库(下))

Python学习笔记——从入门到报废(十八、第三方库(上))

Python可视化Seaborn全攻略 | Part.1

绘图封神,Matplotlib全套教程|Part.1

(文章使用AI进行润色和排版)

最新文章

随机文章