Python Pandas – 使用Seaborn在箱线图上绘制一组观测数据
在数据分析中,我们时常需要对数据进行可视化分析。Python中的Pandas
库和Seaborn
库提供了一些强大的工具,可以在箱线图上绘制一组观测数据。箱线图是一种常用的可视化工具,可以展示数据的中位数、四分位数、极值和异常值等信息,适合用于分析数据的分布情况和异常值信息。
1. 准备数据
我们先准备一组演示数据,这些数据随机生成,并分为3个组。代码如下:
import numpy as np
import pandas as pd
np.random.seed(10)
data = pd.DataFrame({
'A': np.random.normal(0, 1, 100),
'B': np.random.normal(2, 1, 100),
'C': np.random.normal(3, 2, 100)
})
执行该代码后,我们得到一个大小为100的数据框,其中包含3列,每一列都有100个随机生成的数值。其中,列A的数据是均值为0,标准差为1的正态分布,列B的数据是均值为2,标准差为1的正态分布,列C的数据是均值为3,标准差为2的正态分布。
2. 绘制箱线图
接下来我们使用Seaborn
库通过boxplot()
函数绘制该数据的箱线图。boxplot()
函数可以接受多个参数,例如data
指定输入的数据,palette
指定调色板,width
指定箱子的宽度,linewidth
指定边框线宽度等,具体参数可以参考官方文档。
import seaborn as sns
sns.boxplot(data=data, width=0.5, palette="pastel")
执行该代码后,我们会得到一个如下图所示的箱线图。
箱线图中每一个箱子代表一个变量(列),箱子中的线代表变量的中位数,箱子的上边缘和下边缘分别代表变量的上四分位数和下四分位数。箱子的上下端点之外的点称为异常点,通常情况下被认为是值不正常或偏离正常值过远的观测点。
我们可以看到,该数据集中的变量A分布集中在0附近,变量B的分布集中在2附近,变量C的分布集中在3附近。由于变量C的标准差较大,因此其箱子的上下端点之外有一些异常点。
3. 自定义箱线图
使用Seaborn
库,我们可以自定义箱线图的外观和样式,例如改变箱线的颜色,增加点的大小等。下面是一个自定义箱线图的代码示例:
sns.boxplot(data=data, width=0.5, palette="pastel",
showmeans=True, meanline=True,
boxprops={'facecolor':'None', 'edgecolor':'blue'},
flierprops={'markerfacecolor':'red', 'marker':'x', 'markersize':8},
meanprops={'marker':'s','markerfacecolor':'blue', 'markersize':8},
whiskerprops={'color':'gray', 'linestyle':'--', 'linewidth':2})
执行该代码后,我们可以得到一个如下图所示的自定义箱线图。
结论
在Python中,Pandas
和Seaborn
提供了方便易用的工具,可以通过简单的代码快速绘制一组观测数据的箱线图,并对其进行自定义调整。箱线图是一种常用的数据可视化工具,可以帮助我们分析数据的分布情况和异常值信息,从而更好地进行数据分析和决策。