首页 > 编程笔记 > Python笔记 阅读:18

Seaborn boxplot():创建箱型图(附带实例)

在 Seaborn 中,可以使用 boxplot() 函数创建箱形图。箱形图也称为箱线图或盒须图,主要用于展示数据的分布情况并找出异常数据。

箱形图是根据以下几个统计值绘制出来的:上限(最大值)、下限(最小值)、中位数、上四分位数、下四分位数和异常值。除了异常值之外,其他 5 个值将箱形图分割为 4 个部分,如下图所示。


图 1 箱形图的结构

创建基本箱形图

分析下面的代码:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style({'font.sans-serif': 'SimSun'})

month  = range(1, 7)
counts = [20, 50, 90, 60, 30, 70]

data = dict(zip(['月份', '数量'], [month, counts]))
sns.boxplot(data, y='数量')
plt.show()
程序将创建如下图所示的箱形图。


图 2 箱形图

创建包含异常值的箱形图

如果数据中存在异常值,则在创建的箱形图中会自动显示异常值。

分析下面的代码:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style({'font.sans-serif': 'SimSun'})
month  = range(1, 7)
counts = [20, 50, 90, 60, 30, 160]
data = dict(zip(['月份', '数量'], [month, counts]))
sns.boxplot(data, y='数量')
plt.show()
程序将创建如下图所示的箱形图,其中以圆圈的形式显示异常值。


图 3 包含异常值的箱形图

为多组数据创建箱形图

分析下面的代码:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style({'font.sans-serif': 'SimSun'})
month  = [1, 1, 2, 1, 2, 3, 3, 2, 1, 2, 1, 1]
counts = [20, 30, 70, 50, 90, 60, 70, 10, 30, 20, 50, 30]
data = dict(zip(['月份', '数量'], [month, counts]))
sns.boxplot(data=data, x=month, y=counts)
plt.show()
程序将创建如下图所示的箱形图,其中包含多个箱子。


图 4 为多组数据创建箱形图

相关文章