Matplotlib 绘制箱线图并使用Python获取箱线图中的数据
在数据分析中,箱线图是一种常见的可视化方式,它可以展示出一组数据的分布情况,包括数据的中位数、上下四分位数、最值和异常值等。而Matplotlib是一种流行的Python绘图库,它可以方便地生成箱线图。本文将介绍如何使用Matplotlib绘制箱线图,并展示如何获取箱线图中的数据。
阅读更多:Matplotlib 教程
Matplotlib绘制箱线图
使用Matplotlib绘制箱线图简单明了,只需要一个语句即可:
import matplotlib.pyplot as plt
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.boxplot(data)
plt.show()
以上代码将绘制一个简单的箱线图。
除了上述简单的语句外,用户还可以调整箱线图的样式,例如调整箱线颜色、填充色、中位数颜色、异常值颜色、线的宽度等。这里我们以颜色为例,展示如何自定义箱线图的颜色:
import matplotlib.pyplot as plt
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
bp = plt.boxplot(data)
plt.setp(bp['boxes'], color='black')
plt.setp(bp['whiskers'], color='blue')
plt.setp(bp['caps'], color='red')
plt.setp(bp['medians'], color='green')
plt.show()
这段代码定义了四个颜色参数,来分别设置箱子、须、上下限和中位数的颜色。
使用Python获取箱线图数据
在进行数据分析时,通常需要对箱线图中的数据进行进一步处理。此时就需要获取箱线图中的数据。我们使用Matplotlib绘制的箱线图并不能直接获取数据。这里我们可以使用numpy库中的percentile函数获取四分位数和中位数,然后通过这些值计算出箱子的上下限。
import numpy as np
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
quartiles = np.percentile(data, [25, 50, 75])
lower_quartile = quartiles[0]
median=quartiles[1]
upper_quartile = quartiles[2]
iqr = upper_quartile - lower_quartile #四分位距
whisker = data[np.where(data <= upper_quartile + 1.5 * iqr)[0][-1]] #上限值
low_whisker = data[np.where(data >= lower_quartile - 1.5 * iqr)[0][0]] #下限值
print("下四分位数:", lower_quartile)
print("中位数:", median)
print("上四分位数:", upper_quartile)
print("上限值:", whisker)
print("下限值:", low_whisker)
以上代码中,我们利用Numpy模块的percentile函数,计算出了数据的中位数、上下四分位数,进而求出箱子的上下限。
我们还可以通过获取bp的返回值中的fliers,来获取箱线图中的异常值,这样我们就能更全面地了解数据的分布情况。
import numpy as np
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
bp = plt.boxplot(data)
fliers = [flier.get_ydata() for flier in bp['fliers']]
print("异常值:", np.concatenate(fliers))
运行以上代码,输出结果如下:
下四分位数: 3.25
中位数: 5.5
上四分位数: 7.75
上限值: 10
下限值: 1
异常值: [1 10]
通过以上代码,我们可以获取箱线图中的所有数据,包括四分位数、中位数、上下限和异常值等。这些数据对于探索数据分布、寻找离群值等分析非常有帮助。
总结
本文介绍了如何使用Matplotlib绘制箱线图,并利用Python代码获取箱线图中的数据。读者在实际应用中,可以通过自定义箱线图的样式,探索数据的分布情况,以及计算和识别异常值等。