09_Seaborn基本图表

Seaborn 是对 Matplotlib 进行了更高级的封装,而且也能和 Pandas 无缝整合,可以用更少的代码构建出更好的统计图表。

1
2
3
4
5
6
7
8
# 联网加载官方的小费数据集
import seaborn as sns
import ssl

ssl._create_default_https_context = ssl._create_unverified_context

tips_df = sns.load_dataset('tips')
tips_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 244 entries, 0 to 243
Data columns (total 7 columns):
 #   Column      Non-Null Count  Dtype   
---  ------      --------------  -----   
 0   total_bill  244 non-null    float64 
 1   tip         244 non-null    float64 
 2   sex         244 non-null    category
 3   smoker      244 non-null    category
 4   day         244 non-null    category
 5   time        244 non-null    category
 6   size        244 non-null    int64   
dtypes: category(4), float64(2), int64(1)
memory usage: 7.4 KB

首先设置主题更好看。

1
sns.set_theme()

1 直方图

Seaborn中的方法非常统一,基本上都可以直接给数据集,通过x/y设置坐标轴数据来源,大多数也可以使用hue参数对某一字段进行分组聚合,通过palette参数设置颜色搭配。

1
sns.histplot(data=tips_df, x='total_bill', hue='sex', palette='Dark2')
<Axes: xlabel='total_bill', ylabel='Count'>
png

直方图设置kde=True参数可以得到核密度估计图。

1
sns.histplot(tips_df, x='total_bill', kde=True)
<Axes: xlabel='total_bill', ylabel='Count'>
png

2 核密度图

核密度估计图(KDE,Kernel Density Estimate Plot)是一种用于显示数据分布的统计 图表,它通过平滑直方图的方法来估计数据的概率密度函数,使得分布图看起来更加 连续和平滑。

1
sns.kdeplot(data=tips_df, x='total_bill', hue='sex')
<Axes: xlabel='total_bill', ylabel='Density'>
png

3 散点图

1
sns.scatterplot(data=tips_df, x='total_bill', y='tip', hue='sex')
<Axes: xlabel='total_bill', ylabel='tip'>
png

通过regplot()函数绘制散点图,同时会拟合回归曲线,这个函数不支持使用hue进行分组。

1
sns.regplot(data=tips_df, x='total_bill', y='tip')
<Axes: xlabel='total_bill', ylabel='tip'>
png

可以通过lmplot()函数绘制分组回归曲线图。

1
sns.lmplot(data=tips_df, x='total_bill', y='tip', hue='sex')
<seaborn.axisgrid.FacetGrid at 0x169a85210>
png

通过jointplot()函数绘制在每个轴上包含单个变量的散点图。

1
sns.jointplot(data=tips_df, x='total_bill', y='tip', hue='sex')
<seaborn.axisgrid.JointGrid at 0x16b18afe0>
png

4 箱线图

1
sns.boxplot(data=tips_df, x='day', y='total_bill')
<Axes: xlabel='day', ylabel='total_bill'>
png

5 小提琴图

相较于箱线图,小提琴图没有标注异常点而是显示了数据的整个范围,另一方面,小提琴图很好的展示了数据的分布。

1
sns.violinplot(data=tips_df, x='day', y='tip')
<Axes: xlabel='day', ylabel='tip'>
png

按性别分组统计使用颜色区分。

1
sns.violinplot(data=tips_df, x='day', y='tip', hue='sex', split=True)
<Axes: xlabel='day', ylabel='tip'>
png

6 成对关系图

1
sns.pairplot(data=tips_df, hue='sex')
<seaborn.axisgrid.PairGrid at 0x175b91570>
png

7 自定义颜色

使用Seaborn自带的调色板设置颜色,上述的绘图函数都可以设置palette参数进行设置。

png

09_Seaborn基本图表
https://zhubaoduo.com/2024/06/30/大模型开发/03 数据处理与统计分析/09_Seaborn基本图表/09_Seaborn基本图表/
作者
baoduozhu
发布于
2024年6月30日
许可协议