📜  Pandas 和 Seaborn 的箱线图可视化(1)

📅  最后修改于: 2023-12-03 15:33:24.310000             🧑  作者: Mango

Pandas 和 Seaborn 的箱线图可视化

箱线图介绍

箱线图(Box plot)是一种可以展示数据分布情况的可视化图表。它能够反映出一组连续型数值数据的分布特征,包括中位数、四分位数、上下四分位数、极值等。箱线图通常由箱体、须和异常值组成。

箱体由上下两条横线和一条竖线组成,上下横线分别为上下四分位数(Q3、Q1),箱体的长度为四分位距(IQR),即 Q3 - Q1。箱体内中央的横线为中位数。须则是延伸至数据的最小值和最大值,计算方法为“1.5倍四分位距外”的最小值和最大值。

如果有异常值,箱线图通常会将其以点的形式标记出来,而不会将其包含在须的范围内。

Pandas 的箱线图

Pandas 是 Python 语言中数据处理和分析的重要工具,同时也包括了画图功能。Pandas 的.DataFrame 类可以直接调用 plot.box() 来绘制箱线图。

import pandas as pd

data = {'A':[1,2,3,4,5,6,7,8,9],'B':[2,4,6,8,10,12,14,16,18],'C':[1,3,5,7,9,11,13,15,17]}
df = pd.DataFrame(data)
df.plot.box(grid='True',title='Pandas Box Plot')

当我们运行上面的代码块时,就可以得到一个名为“Pandas Box Plot”的箱线图。

该代码块中,我们首先定义了数据字典,并用其创建了一个 DataFrame。接着我们使用 .plot.box() 方法画出了这个 DataFrame 的箱线图,并将网格线打开,并给出了一个标题。

Seaborn 的箱线图

Seaborn 是一个由 Matplotlib 扩展而来的 Python 数据可视化库,它提供了很多简单易用的图形绘制接口。可以使用 Seaborn 的.boxplot() 方法来画箱线图。

import seaborn as sns

data = sns.load_dataset("tips")
sns.boxplot(x='day',y='total_bill',data=data)

该代码块中,我们以小费数据集为例,使用 .load_dataset() 方法,从Seaborn 的自带数据集中下载了关于小费的统计信息。之后我们使用 .boxplot() 画出每天顾客总消费的箱线图。因为数据集储存着每一笔小费数据的详细信息,所以我们需要使用 xy 参数指定箱线图横轴和纵轴要显示的数据。

注意,上面提到的 xy 参数都必须是数据集中的列。所以在实际使用时,需要先确保给 .boxplot() 方法传入的数据是一个 DataFrame,并且列名正确。如果数据量大,可以从CSV文件或数据库中读取并处理后再画图。

总结

本文介绍了Python中两个常用的箱线图可视化工具——Pandas 和 Seaborn,并演示了如何通过这两个工具来产生箱线图。在实际使用中,可以根据数据集的大小、画图需求的复杂度等因素来选择适合自己的工具。