箱线图 boxplot

  • 简述
  • 原理
  • 绘制方法
  • python - matplotlib
  • 加载功能模块
  • 加载数据
  • 绘制boxplot
  • python - seaborn
  • 加载功能模块
  • 加载数据
  • 绘制boxplot
  • R - ggplot
  • 加载功能模块
  • 加载数据
  • 绘制boxplot


简述

因图形形状如箱子而得名。箱线图常用于展示一组连续型数据的分散情况。学术界普遍认为,箱线图由美国数学家M.E.斯皮尔于1960年提出,由美国统计学家J.W.图基于1977年完善并正式发表。在后续的发展中,箱线图的绘制过程经历了一些重要调整。主要调整包括箱子的宽度,上下边缘的确定标准,异常值的标识方法等。

原理

箱线图利用一组数据的分位数信息进行数据展示。箱形图分为中心、延伸以及分布状态的全部范围。将一组数据从大到小排列,分别计算出这组数据的上边缘,四分之一分位数(r语言箱式图 多组_r语言箱式图 多组)、中位数(r语言箱式图 多组_python_02)、四分之三分位数(r语言箱式图 多组_r语言箱式图 多组_03)、下边缘,有时还包括一个异常值。四分位距(interquantile range; IQR)是四分之三分位与四分之一分位数的差值,r语言箱式图 多组_r语言箱式图 多组_04,主要反映连续型数据的离散程度。

绘制方法

在不同软件中,箱线图的绘制方法有微小差异,这里仅说明常见的箱线图的绘制方法。

  1. 先根据三个分位数r语言箱式图 多组_数据分析_05r语言箱式图 多组_数据挖掘_06r语言箱式图 多组_数据挖掘_07画出中间的盒子。
  2. r语言箱式图 多组_数据挖掘_07r语言箱式图 多组_r语言_09区间内的最大值向盒子的顶端连线,由r语言箱式图 多组_数据分析_05r语言箱式图 多组_r语言_09区间内的最小值向盒子的底部连线。
  3. 处于r语言箱式图 多组_r语言_09r语言箱式图 多组_r语言箱式图 多组_13或者r语言箱式图 多组_数据分析_14r语言箱式图 多组_r语言箱式图 多组_15范围内的数据用圆点标出,称为离群值(outliers)。
  4. 大于r语言箱式图 多组_r语言箱式图 多组_15或者小于r语言箱式图 多组_r语言箱式图 多组_13的用星号标出,称为异常值(extremes)。

r语言箱式图 多组_数据挖掘_18

python - matplotlib

加载功能模块

import matplotlib.pyplot as plt
import pandas as pd

加载数据

# 加载数据集
from sklearn.datasets import load_iris

# 把数据集转换为一个DataFrame
data = load_iris()
df = pd.DataFrame(data=data.data,columns=data.feature_names)
df['target'] = data.target
df['target'] = df['target'].replace([0,1,2],['setosa', 'versicolor', 'virginica'])

绘制boxplot

# 设置画布大小
plt.figure(figsize=(8,6))
# 设置绘制的数据
plt.boxplot(df[df.columns[0:-1]])
# 设置图的标题
plt.title('Box plot')
# 设置X轴(横坐标轴)的显示内容
plt.xticks([1, 2, 3, 4],df.columns[0:-1] )
plt.show()

r语言箱式图 多组_r语言箱式图 多组_19

python - seaborn

加载功能模块

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

加载数据

# 加载数据集
from sklearn.datasets import load_iris

# 把数据集转换为一个DataFrame
data = load_iris()
df = pd.DataFrame(data=data.data,columns=data.feature_names)
df['target'] = data.target
df['target'] = df['target'].replace([0,1,2],['setosa', 'versicolor', 'virginica'])

绘制boxplot

# 设置绘制的数据
sns.boxplot(x='target', y = 'sepal length (cm)',data= df )
plt.show()

r语言箱式图 多组_r语言箱式图 多组_20

R - ggplot

加载功能模块

# 绘图包
library(ggplot2)
# 数据处理包
library(tidyverse)

加载数据

# 加载自带数据集
library(mpg)

# 删除数据中的空值
df <- mpg
df <- drop_na(df)

绘制boxplot

# 绘制箱线图
ggplot(mpg,aes(x=class,y=hwy,color=drv)) + 
  geom_boxplot()

r语言箱式图 多组_r语言箱式图 多组_21