import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.dates as mdates box_data = {12, 34, 3, 5, 6, 8, 9, 5, 120} lable='A' plt.boxplot(box_data,labels=lable) plt.show() # 下四分分位数Q1=2.75:是怎么计算出来的呢?首先序列长度n=9,(1+n)/4=2.5,说明上四分位数在第2.5个位置数,实际上这个数是不存在的 # 但我们知道这个位置是在第2个数与第3个数之间的。假设从第2个数到第3个数之间是均匀分布的。那么第2.5个数就是第二个数0.5+第三个数0.5, # 即0.5*5+0.5*5=5 box_data = {12, 34, 3, 5, 6, 8, 9, 5, 120} # 数据集个数为9 n=9 # 位置x x=(n+1)/4 # x=2.5 在第二个和第三个之间 # Q1为下四分位 Q1=0.5*5+0.5*5 # 下四分位数Q1=5 # 中位数Q2 Q2=8 # 上四分位数Q3=23:这个下四分位数所在位置计算方法同上,只不过是(1+n)*3/4=7.5,这个是个介于第7个 # 位置与第8个位置之间的地方。对应的具体的值是0.5*12+0.5*34=23。 # 位置y y=(1+n)*3/4 # y=7.5 介于7和8 # Q3上四分位数 Q3=0.5*12+0.5*34 # 上四分位数Q3=23 #四分位距离 IQR=Q3-Q1 up=Q3+1.5*IQR # 上限up=50 down=Q1-1.5*IQR # 下限down=-22 print(up,down) # 超出上下限为异常值