使用SeaBorn & Python Pandas创建箱线图
箱线图是一种经常用于数据分析的图表类型,它可以帮助我们快速的了解数据的分布情况以及异常点。在Python中,我们可以使用SeaBorn & Pandas库来创建箱线图。
更多Pandas相关文章,请阅读:Pandas 教程
准备数据
在这个示例中,我们将使用一个虚拟的数据集。首先,我们需要安装SeaBorn库并导入以下几个库。
!pip install seaborn
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
创建一个数据名称为 df,包含5列和100行,并使用随机数据填充。
import numpy as np
np.random.seed(10)
df = pd.DataFrame({'A': np.random.randn(100),
'B': np.random.randn(100) + 1,
'C': np.random.randn(100) - 1,
'D': np.random.randn(100) - 2,
'E': np.random.randn(100) + 2})
print(df.head())
输出结果如下:
A B C D E
0 1.331587 0.411399 -1.545400 -2.027134 2.252168
1 0.715279 1.912866 -0.008384 -1.755605 0.322981
2 -1.545400 1.287688 -0.121668 -1.402564 4.019005
3 0.621336 1.579213 0.680069 -0.820392 0.870047
4 -0.720086 0.829485 -0.022423 -0.076200 1.918219
现在我们有了一个数据列表格,让我们开始使用SeaBorn创建一个箱线图。
创建 箱线图
在SeaBorn中创建一个箱线图非常简单。我们只需要使用 sns.boxplot()
函数即可创建。
sns.boxplot(data=df)
plt.show()
这将创建一个包含所有列的箱线图。
在上图中,我们可以看到每个列的箱线图。箱线表示的是中位数,上下四分之一位数以及异常值的区间范围。
从这个示例图中,我们可以发现每个变量的中位数和分布范围,以及是否有异常值。
下面我们来逐步分析创建箱线图的具体技巧。
自定义 横轴标签
如果我们想要自定义横轴标签的话,我们可以将数据的列名称作为 x 参数,并将 y 参数设置为我们需要绘制的列。
sns.boxplot(data=df, x="A", y="B")
plt.show()
上述代码将创建一个由A列绘制的箱线图,y轴为B列。
在生成的图表中,我们可以看到沿着A列分布的B列的箱形图结构。这有助于我们更好地理解B列何时出现异常值以及它们的位置。
自定义纵轴范围
我们可以通过设置 ylim 参数来自定义纵轴的范围。
sns.boxplot(data=df, x="A", y="B")
plt.ylim(0, 3)
plt.show()
上述代码将创建一个由 A 列绘制的箱线图,y轴为B列,并将纵轴范围限制在0到3之间。
在生成的图表中,我们可以看到纵轴被限制在0到3之间,这使我们更清楚地看到了B列中箱形图的细节。
自定义颜色
我们可以通过设置 color 参数来自定义箱线图的颜色。
sns.boxplot(data=df, x="A", y="B", color="green")
plt.ylim(0, 3)
plt.show()
上述代码将创建一个由A列绘制的箱线图,y轴为B列,并将箱线图的颜色设置为绿色。
在生成的图表中,我们可以看到绿色的箱子和中位数线,这使图表更加突出。
绘制多个箱线图
我们可以使用 Pandas 中的 groupby()
函数来绘制具有分组情况的多个箱线图。
例如,以下代码将生成一个包含 A、B 列并分组的箱线图:
sns.boxplot(data=df, x="A", y="B", hue="C")
plt.ylim(0, 3)
plt.show()
这将生成一个包含 A、B 列并按 C 列分组的箱线图。
在上图中,我们可以看到每组数据的箱线图的不同颜色,更方便的比较每组数据的差异。
结论
在使用SeaBorn & Pandas库创建箱线图时,我们可以轻松地了解数据分布情况以及异常点。我们可以自定义横轴标签,纵轴范围,箱线图的颜色以及绘制多个箱线图等功能。使用箱线图可以更加直观的了解数据分布情况,为数据分析提供更好的参考。