python中同时绘制多个箱线图
在数据可视化中,箱线图(Box plot)是一种常用的统计图表,用来显示一组数据的分布情况。箱线图能够展示数据的中位数、四分位数、最大值、最小值以及异常值,是一种比较直观的数据呈现方式。
在Python中,我们可以使用matplotlib
库来绘制箱线图。本文将介绍如何在Python中同时绘制多个箱线图,以展示多组数据的分布情况。
准备数据
首先,我们需要准备多组数据,用于绘制箱线图。这里我们以一个示例数据集为例,其中包含了三组数据:data1、data2和data3。
import numpy as np
np.random.seed(10)
data1 = np.random.normal(100, 10, 200)
data2 = np.random.normal(90, 20, 200)
data3 = np.random.normal(80, 30, 200)
绘制多个箱线图
在绘制多个箱线图时,我们可以使用matplotlib
库的subplot
函数来创建一个包含多个子图的画布,并在每个子图中绘制一个箱线图。
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.subplot(1, 3, 1)
plt.boxplot(data1)
plt.title('Data 1')
plt.subplot(1, 3, 2)
plt.boxplot(data2)
plt.title('Data 2')
plt.subplot(1, 3, 3)
plt.boxplot(data3)
plt.title('Data 3')
plt.show()
在上述代码中,我们创建了一个大小为10×6的画布,并在其中创建了三个子图,分别绘制了data1、data2和data3的箱线图。
每个子图中的箱线图展示了相应数据组的分布情况,包括了中位数、四分位数、最大值、最小值以及异常值。
定制箱线图
除了绘制多个箱线图外,我们还可以对箱线图进行一些定制,使其更具有辨识度和美观性。
修改箱线图颜色
我们可以使用boxprops
参数来修改箱线图的颜色。
plt.figure(figsize=(10, 6))
plt.subplot(1, 3, 1)
plt.boxplot(data1, boxprops=dict(color='red'))
plt.title('Data 1')
plt.subplot(1, 3, 2)
plt.boxplot(data2, boxprops=dict(color='blue'))
plt.title('Data 2')
plt.subplot(1, 3, 3)
plt.boxplot(data3, boxprops=dict(color='green'))
plt.title('Data 3')
plt.show()
运行以上代码,我们将得到具有不同颜色的箱线图。
添加网格线
我们可以通过设置grid
参数为True来添加网格线。
plt.figure(figsize=(10, 6))
plt.subplot(1, 3, 1)
plt.boxplot(data1, showgrid=True)
plt.title('Data 1')
plt.subplot(1, 3, 2)
plt.boxplot(data2, showgrid=True)
plt.title('Data 2')
plt.subplot(1, 3, 3)
plt.boxplot(data3, showgrid=True)
plt.title('Data 3')
plt.show()
修改箱线宽度
我们可以通过设置widths
参数来修改箱线的宽度。
plt.figure(figsize=(10, 6))
plt.subplot(1, 3, 1)
plt.boxplot(data1, widths=0.5)
plt.title('Data 1')
plt.subplot(1, 3, 2)
plt.boxplot(data2, widths=0.8)
plt.title('Data 2')
plt.subplot(1, 3, 3)
plt.boxplot(data3, widths=1.2)
plt.title('Data 3')
plt.show()
通过以上方式,我们可以对箱线图进行多样化的定制,使其更符合我们的需求。
结语
本文介绍了如何在Python中同时绘制多个箱线图,展示了多组数据的分布情况。通过定制箱线图的颜色、网格线和宽度等属性,我们可以使箱线图更加直观和美观。