- 1. 箱线图简介
- 2. 绘制箱线图
- 2.1 绘制一个箱线图
- 2.2 绘制多个箱线图
Matplotlib是一个Python的2D绘图库,通过Matplotlib,开发者可以仅需要几行代码,便可以生成折线图,直方图,条形图,饼状图,散点图等。详情可查看 Matplotlib库API文档 1. 箱线图简介
箱线图(Box-plot)又称为盒须图、盒式图或箱型图,是一种用作显示一组数据分散情况资料的统计图。因形状像箱子而得名。在各种领域也经常被使用,它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方法是:先找出一组数据的上限值、下限值、中位数(Q2)和下四分位数(Q1)以及上四分位数(Q3);然后,连接两个四分位数画出箱子;再将最大值和最小值与箱子相连接,中位数在箱子中间。
在 matplotlib 中有 plt.boxplot 来绘制箱线图。
参数:
(1) x :需要绘制的箱线图的数据
(2) notch:是否展示置信区间,默认是 False ,如果设置为 True ,那么就会在盒子上展示一个缺口
(3) sym:代表异常点的符号表示,默认是小圆点
(4) vert:是否是垂直的,默认是 True ,如果设置为 False 那么将水平方向展示
(5) whis:上下限的系数,默认是 1.5 (或改为 3 ),也就是上限是 Q3+1.5IQR ,可以改成其他的,也可以为一个序列。如果是一个序列,那么序列中两个值分别代表的就是下限和上限的值,而不是再需要通过 IQR 来计算
(6)positions:设置每个盒子的宽度
(7)widths:设置每个盒子的宽度
(8)labels:每个盒子的label
(9)meanline 和 showmeans:如果这两个都为 True ,那么将会绘制平均值的线条
import numpy as np import pandas as pd import matplotlib.pyplot as plt data = np.random.rand(100)*100 data = np.append(data,np.array([-120,150])) plt.boxplot(data,sym='^',labels=['A']) plt.show()2.2 绘制多个箱线图
athletes = pd.read_csv("athlete_events.csv")
countries = {
'CHN':'中国',
'JPN':'日本',
'KOR':'韩国',
'USA':'美国',
'CAN':'加拿大',
'BRA':'巴西',
'GBR':'英国',
'FRA':'法国',
'ITA':'意大利',
'ETH':'埃塞俄比亚',
'KEN':'肯尼亚',
'NIG':'尼日利亚'
}
dfs=[]
for code in countries.keys():
df = athletes[athletes['NOC']==code]['Height'].dropna()
dfs.append(df)
plt.figure(figsize=(20,5))
plt.boxplot(dfs)
plt.xticks(range(1,13),countries.values(),fontproperties=font)
plt.show()



