3

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

在此处输入图像描述

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

4

1 回答 1

8

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

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 位置替换为我们想要的位置。

它产生这个输出:

在此处输入图像描述

于 2013-02-19T10:11:15.703 回答