箱形图是由四分位数和中位数决定的,如果这些数据已知,能不能直接在matplotlib把箱形图绘制出来?
现在matplotlib里的boxplot是需要输入整个原始数据的,而不能直接用四分位数和中位数。
1个回答
直接用plt.boxplot是不行的,可以用Axes.bxp
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
boxes = [
{
'label':'Male height',
'whislo': 162.6, #底部横线位置
'q1': 170.2, #第一四分位数
'med': 175.7, #中位数
'q3': 180.4, #第三四分位数
'whishi': 186.8, #顶部横线位置
'fliers': [160, 205] #outlier异常点的数值
},
{
'label':'Female height',
'whislo': 156.6, #底部横线位置
'q1': 160.2, #第一四分位数
'med': 163.7, #中位数
'q3': 166.4, #第三四分位数
'whishi': 171.8, #顶部横线位置
'fliers': [150, 151, 185] #outlier异常点的数值
}
]
ax.bxp(boxes,showfliers=True)
ax.set_ylabel('cm')
plt.show()