摘要:做数据分析时,一堆冷冰冰的数字总让人头大?其实只要把数据变成直观的图表,规律和结论分分钟浮出水面。今天就给大家安利一个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,让数据自己“说话”~
来源:绿叶菜