📅  最后修改于: 2023-12-03 15:33:24.310000             🧑  作者: Mango
箱线图(Box plot)是一种可以展示数据分布情况的可视化图表。它能够反映出一组连续型数值数据的分布特征,包括中位数、四分位数、上下四分位数、极值等。箱线图通常由箱体、须和异常值组成。
箱体由上下两条横线和一条竖线组成,上下横线分别为上下四分位数(Q3、Q1),箱体的长度为四分位距(IQR),即 Q3 - Q1。箱体内中央的横线为中位数。须则是延伸至数据的最小值和最大值,计算方法为“1.5倍四分位距外”的最小值和最大值。
如果有异常值,箱线图通常会将其以点的形式标记出来,而不会将其包含在须的范围内。
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 是一个由 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()
画出每天顾客总消费的箱线图。因为数据集储存着每一笔小费数据的详细信息,所以我们需要使用 x
和 y
参数指定箱线图横轴和纵轴要显示的数据。
注意,上面提到的 x
和 y
参数都必须是数据集中的列。所以在实际使用时,需要先确保给 .boxplot()
方法传入的数据是一个 DataFrame,并且列名正确。如果数据量大,可以从CSV文件或数据库中读取并处理后再画图。
本文介绍了Python中两个常用的箱线图可视化工具——Pandas 和 Seaborn,并演示了如何通过这两个工具来产生箱线图。在实际使用中,可以根据数据集的大小、画图需求的复杂度等因素来选择适合自己的工具。