Seaborn

目录

seaborn的下载

1. Seaborn 的基本功能

2. Seaborn 的一些常用功能

Seaborn在单变量、双变量和多变量数据可视化中常用的三个方法:

单变量数据可视化

双变量数据可视化

多变量数据可视化

Seaborn 直方图、核密度估计图、小提琴图

一、Seaborn 直方图

二、核密度估计图(KDE)

三、小提琴图(Violin Plot)


seaborn的下载

Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了多种直观且美观的数据可视化方法。

首先在终端中下载输入pip install seaborn

问题:seaborn中的示例数据集无法使用、下载压缩包后电脑没有seaborn-data文件夹,在用户下创建后仍无法使用。

1. Seaborn 的基本功能

  • 数据可视化:Seaborn 提供了多种数据可视化方式,包括散点图、线图、柱状图、箱线图、热力图等,有助于直观地理解数据分布和特征之间的关系。
  • 统计图形:除了基本的数据可视化外,Seaborn 还提供了多种统计图形,如直方图、核密度估计图、小提琴图等,这些图形可以帮助用户更好地理解数据的统计特性。
  • 数据集:Seaborn 自带了一些示例数据集,如 tipsflightsiris 等,这些数据集可以用于学习和测试数据可视化技巧。

2. Seaborn 的一些常用功能

  • pairplot:用于绘制成对的双变量分布图,非常适合用于探索多个特征之间的关系。
  • kdeplot:用于绘制核密度估计图,可以展示数据的分布形态。
  • boxplot:用于绘制箱线图,可以展示数据的四分位数、中位数以及异常值等信息。
  • heatmap:用于绘制热力图,可以展示矩阵或表格数据中的值的大小和分布情况。

Seaborn在单变量、双变量和多变量数据可视化中常用的三个方法:

单变量数据可视化

直方图(Histogram)

  • 用途:直方图通常用于可视化单个变量的分布,如查看数据的中心趋势、分散程度等。
  • 示例代码
    import seaborn as sns
    import matplotlib.pyplot as plt
    # data是包含单变量数据的DataFrame或Series

    sns.histplot(data=data['variable_name'],kde = True)

    # kde=True 参数表示同时绘制核密度估计曲线。

    plt.show()
  • 特点:直方图通过将数据范围划分为多个区间(称为“箱子”或“bins”),并计算每个区间内的数据点数量来展示数据的分布情况。

双变量数据可视化

散点图(Scatter Plot)

  • 用途:散点图用于展示两个变量之间的关系,通过点的位置(x轴和y轴坐标)来表示两个变量的值,从而观察它们之间是否存在某种趋势或模式。
  • 示例代码
    sns.scatterplot(x='x_variable', y='y_variable', data=data)
    plt.show()
  • 特点:散点图直观易懂,适用于探索性数据分析,可以快速发现变量之间的相关性或潜在的模式。

多变量数据可视化

热力图(Heatmap)

  • 用途:热力图是一种数据的二维可视化表示,它使用颜色来显示变量的值。在多变量数据可视化中,热力图常用于显示数据集中多个变量之间的相关性,如相关系数矩阵的可视化。
  • 示例代码
    # data是包含多个数值变量的DataFrame
    corr_matrix = data.corr()

    sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')

    # annot=True 参数表示在每个单元格中显示数值,cmap 参数用于指定颜色映射

    plt.show()
  • 特点:热力图通过颜色的深浅来表示数值的大小,可以清晰地展示多个变量之间的复杂关系,是进行数据探索和相关性分析的有力工具。

Seaborn 直方图、核密度估计图、小提琴图

一、Seaborn 直方图

1. 基本概念

直方图(Histogram)是一种用于展示数据分布的图表,通过条形的高度来表示数据落在各个区间内的频率或数量。在Seaborn中,直方图主要用于观察数据的分布情况,如数据的集中趋势、分散程度等。

2. 绘制方法

在Seaborn中,绘制直方图可以使用histplot函数或displot函数(在较新版本的Seaborn中推荐使用histplot)。

  • 使用histplot函数

    import seaborn as sns
    import matplotlib.pyplot as plt
    # df是已经加载好的DataFrame
    sns.histplot(data=df, x='某列名')
    plt.show()

    其中,data参数指定数据源,x参数指定要绘制直方图的列。

  • 调整直方图的参数

    • bins:控制直方图的分箱数。
    • kde:是否添加核密度估计曲线。
    • stat:控制直方图的统计量,如count(观测数,默认)、frequency(频数)、density(密度)、probability(概率)。
二、核密度估计图(KDE)

1. 基本概念

核密度估计(Kernel Density Estimation, KDE)是一种用于估计随机变量概率密度函数的非参数方法。它通过对数据点进行平滑处理,从而得到整个数据集的密度分布曲线。

2. 绘制方法

在Seaborn中,可以直接使用kdeplot函数绘制核密度估计图,或者使用histplot函数时设置kde=True来同时展示直方图和核密度估计曲线。

案例:

# 导入必要的库
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
# 准备数据
np.random.seed(123)
data = np.hstack((np.random.normal(loc=0, scale=1, size=100),
np.random.normal(loc=3, scale=1.5, size=100)))
# 绘制核密度图
sns.set(style="whitegrid")
sns.kdeplot(data, shade=True, color="g", bw_adjust=0.5)
plt.title('核密度图示例')
plt.xlabel('值')
plt.show()

3. 原理

KDE的基本思想是将每个数据点视为一个核函数(如高斯核)的中心,然后计算所有核函数的加权和,得到整个数据集的密度分布曲线。核函数的带宽(bw)是一个重要的参数,它决定了核函数的平滑程度,进而影响密度分布曲线的形状。

三、小提琴图(Violin Plot)

1. 基本概念

小提琴图(Violin Plot)是一种结合了箱线图(Box Plot)和密度图(Density Plot)特点的图表。它使用核密度估计来展示数据的分布形态,同时保留了箱线图表示数据四分位数和异常值的功能。

2. 绘制方法

在Seaborn中,可以使用violinplot函数绘制小提琴图。

案例:

# 导入必要的库
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 设置随机种子以便结果可重复
np.random.seed(123)
# 准备数据
group = ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C']
*10, # 列表扩展,但直接这样写是语法错误,用实际的数值代替
values = np.concatenate([np.random.normal(loc=0, scale=1, size=100),
np.random.normal(loc=1, scale=1.5, size=100),
np.random.normal(loc=2, scale=0.75, size=100)])
# 将数据和组别合并到一个DataFrame中
df = pd.DataFrame({'Group': group * 3, # 假设每个组都有相同数量的观测值
'Value': values})
# 直接使用df中的'Group'列
# 绘制小提琴图
plt.figure(figsize=(10, 6)) # 设置图形大小
sns.violinplot(x='Group', y='Value', data=df, palette="Set2")
plt.title('小提琴图示例')
plt.xlabel('组别')
plt.ylabel('值')
plt.show()

3. 原理

小提琴图的绘制原理与KDE类似,都是基于核密度估计。不同的是,小提琴图将KDE曲线绘制成类似小提琴的形状,以更直观地展示数据的分布形态。同时,小提琴图内部还会绘制箱线图的元素(如中位数、四分位数等),以提供额外的统计信息。

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值