箱线图的几种画法-Python
欢迎关注笔者的微信公众号
箱线图是一种强大的数据可视化工具,用于了解数据的分布。它将数据分成四分位数,并根据从这些四分位数得出的五个数字对其进行汇总:
-
中位数:数据的中间值。标记为 Q2,描绘了第 50 个百分点。
-
第一个四分位数:“最小非异常值”和中位数之间的中间值。标记为 Q1,描绘了第 25 个百分点。
-
第三四分位数:“最大非异常值”和中位数之间的中间值。标记为 Q3,描绘了第 75 个百分点。
-
“最大非异常值”:按 (Q3 + 1.5*IQR) 计算。高于此值的所有值都被视为异常值。
-
“最小非异常值”:按 (Q1 – 1.5*IQR) 计算。低于此值的所有值都被视为异常值。
它还可以表示数据的对称性、偏度和分布。
箱型图的功能:
- 直观明了地识别数据批中的异常值
- 利用箱线图判断数据批的偏态和尾重
- 比较几批数据的形状
使用Pandas + Seaborn绘制箱型图
- 导入相关库
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")
sns.set(font="SimHei")
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
Pandas绘图
# load the dataset
df = sns.load_dataset('tips')
df.head(10)
tips
是Seaborn官方的一个数据集,首次会从github远程仓库下载到用户目录,如果出现超时可手动使用下面的镜像加速网址下载官方数据集并放到用户目录下,如/home/sairo/seaborn-data
https://github.com.cnpmjs.org/mwaskom/seaborn-data.git
df.boxplot(by="day", column=["total_bill"])
df.boxplot(by="size", column=["tip"], grid=False)
使用Seaborn画箱型图
tips = sns.load_dataset("tips")
tips.head()
# Draw a vertical boxplot grouped
# by a categorical variable:
sns.set_style("whitegrid")
sns.boxplot(x="day", y="total_bill", data=tips)
Seaborn绘制水平箱型图
箱线图用于可视化数据分布,这在需要比较数据时非常有用。有时,箱线图也称为箱线图。该框显示了数据集的四分位数,而胡须延伸以显示分布的其余部分。在本文中,我们将使用 python 使用 seaborn 实现水平箱线图。
水平箱线图
Seaborn 使用 boxplot() 方法绘制箱线图。我们可以通过两种方法将箱线图变成水平箱线图,我们需要切换x和y属性并将其传递给boxplot()方法,另一种是使用orient="h"
选项传递给boxplot() 方法。
- 方法一:切换x和y属性
# import library & dataset
import seaborn as sns
df = sns.load_dataset("iris")
# Just switch x and y
plt.Figure(dpi=300)
sns.boxplot(y=df["species"], x=df["sepal_length"])
- 方法 2:使用
orient = h
# import library & dataset
import seaborn as sns
tips = sns.load_dataset("tips")
ax = sns.boxplot<