创建双箱图 - 即每个x值两个框

时间:2013-02-19 07:50:28

标签: python matplotlib boxplot

我想创建一个箱线图,其中每个x值有两个相邻的箱形图,有点像这样:

enter image description here

这可能吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:5)

我不知道是否有这种情节的名称,但你可以简单地使用pyplot.boxplot函数创建它,并传递position关键字来稍微移动框。这是一个例子

x = np.array([1000,2000])
data1 = np.array([np.random.normal(loc=0.5,size=100),np.random.normal(loc=1.5,size=100)]).T
data2 = np.array([np.random.normal(loc=2.5,size=100),np.random.normal(loc=0.75,size=100)]).T
plt.figure()
plt.boxplot(data1,0,'',positions=x-100,widths=150)
plt.boxplot(data2,0,'',positions=x+100,widths=150)
plt.xlim(500,2500)
plt.xticks(x)
plt.show()

首先,我们为左右框和相应的 x 位置创建两组数据。接下来,我们绘制每组数据,指定位置为 x 但分别左右移动。 注意:由于我们的x位置相距很远,我们还必须使用widths关键字调整宽度。现在我们设置正确的x轴限制,然后最后替换x-tick位置与我们想要的。

它产生这个输出:

enter image description here