用Seaborn画统计图表,Python新手也能轻松上手!

B站影视 电影资讯 2025-08-30 08:00 3

摘要:做数据分析时,一堆冷冰冰的数字总让人头大?其实只要把数据变成直观的图表,规律和结论分分钟浮出水面。今天就给大家安利一个Python绘图神器——Seaborn,哪怕是编程新手,也能画出专业级的统计图表!

做数据分析时,一堆冷冰冰的数字总让人头大?其实只要把数据变成直观的图表,规律和结论分分钟浮出水面。今天就给大家安利一个Python绘图神器——Seaborn,哪怕是编程新手,也能画出专业级的统计图表!

很多人学Python绘图先接触Matplotlib,但用起来总觉得麻烦:调颜色、改字体、调整坐标轴,一行行代码写下来,半天才能画出一张能看的图。

而Seaborn简直是“懒人福音”:

• 自带高级美感:默认配色、字体、布局都经过设计,不用调参也能出高颜值图表

• 专为统计而生:直接支持DataFrame数据格式,和Pandas完美搭档,省去数据转换步骤

• 一行代码出图:复杂的热力图、箱线图、小提琴图,用Seaborn几行代码就能搞定

举个例子:同样画一张散点图,用Matplotlib可能要写10行代码调样式,Seaborn一行seaborn.scatterplot就自带渐变色和网格线,颜值直接拉满!

1. 先把工具装到位

打开电脑命令行(Windows用Win+R输入cmd,Mac用终端),输入这两行代码:

pip install seaborn

pip install pandas

Seaborn依赖Pandas处理数据,所以这两个库都得装。安装完打开PyCharm或Jupyter,导入工具包:

import seaborn as sns # 给Seaborn起个别名sns,行业惯例

import pandas as pd

import matplotlib.pyplot as plt # 偶尔需要用Matplotlib辅助调整

2. 用自带数据集练手,零门槛入门

担心没有数据?Seaborn早就替你准备好了10+个经典数据集,比如:

• tips:餐厅小费数据(包含消费金额、小费、性别、是否吸烟等信息)

• iris:鸢尾花数据集(花瓣长度、宽度等特征数据)

• titanic:泰坦尼克号乘客数据(年龄、性别、存活情况等)

直接调用就能用,比如加载小费数据集:

tips = sns.load_dataset("tips")

print(tips.head) # 打印前5行数据,看看长啥样

3. 3类高频图表,代码模板直接抄

(1)看分布:直方图+核密度图

想知道“餐厅消费金额分布”?用displot一键出图:

sns.displot(data=tips, x="total_bill", kind="kde", fill=True)

plt.title("消费金额分布") # 加标题

plt.show # 显示图片

• x="total_bill":指定要分析的列(消费金额)

• kind="kde":选择核密度图类型,更平滑地展示分布趋势

运行后能直观看到:大部分人消费在10-20元之间,超过40元的很少

(2)看关系:散点图+线性回归

想分析“消费金额和小费的关系”?用regplot画带回归线的散点图:

sns.regplot(data=tips, x="total_bill", y="tip")

plt.xlabel("消费金额(元)") # x轴标签

plt.ylabel("小费(元)") # y轴标签

plt.show

一眼就能看出:消费金额越高,小费通常也越多(回归线向上倾斜),这就是数据里藏的规律!

(3)看分组:箱线图比表格更直观

想比较“不同性别顾客的消费差异”?箱线图秒杀表格:

sns.boxplot(data=tips, x="sex", y="total_bill")

plt.xlabel("性别")

plt.ylabel("消费金额(元)")

plt.show

箱子的位置、高度、 outliers(异常值)一目了然,能快速发现:男性顾客的平均消费比女性稍高,且消费波动更大。

1. 换个主题,瞬间变高级

Seaborn有5种预设主题,默认的darkgrid不够惊艳?试试whitegrid或ticks:

sns.set_theme(style="whitegrid") # 放在绘图代码前,全局生效

2. 自定义颜色,贴合场景

分析“不同季节的消费数据”?用季节色更有代入感:

sns.boxplot(

data=tips,

x="season",

y="total_bill",

palette=["#FF9999", "#66B2FF", "#99FF99", "#FFCC99"] # 春夏秋冬配色

)

3. 多图组合,一次性看全规律

想同时对比“性别+是否吸烟”对消费的影响?用catplot画多子图:

sns.catplot(

data=tips,

x="sex",

y="total_bill",

hue="smoker", # 按“是否吸烟”分组

col="time", # 按“午餐/晚餐”分列

kind="box"

)

一张图里包含4个小图,能同时看到不同场景下的数据差异,效率直接翻倍!

1. 中文显示乱码?加两行代码解决:

plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]

2. 图片保存模糊?指定高清分辨率:

plt.savefig("my_plot.png", dpi=300) # dpi越大越清晰

3. 数据格式不对?先检查是不是DataFrame:

Seaborn只认Pandas的DataFrame格式,用pd.DataFrame把数据转一下就行。

最后送福利:常用图表代码速查表

图表类型 用途 核心代码

散点图 看变量关系 sns.scatterplot(x,y,data)

箱线图 看分组分布 sns.boxplot(x,y,data)

热力图 看相关性 sns.heatmap(data.corr)

条形图 看分类数据对比 sns.barplot(x,y,data)

线图 看趋势变化 sns.lineplot(x,y,data)

其实Seaborn的精髓就是“用最少的代码,做最专业的分析”。哪怕你刚学Python一周,跟着上面的模板改改数据列名,也能画出让同事惊艳的图表。

下次再遇到一堆数据,别再盯着Excel发呆啦,试试Seaborn,让数据自己“说话”~

来源:绿叶菜

相关推荐