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

标签 python matplotlib boxplot

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

enter image description here

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

最佳答案

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

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 -勾选我们想要的位置。

它产生这个输出:

enter image description here

关于python - 创建双箱线图 - 即每个 x 值有两个框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14952401/

相关文章:

python - 更新 MySQL 中的数百万行——何时提交

python - 将 Flask 应用程序部署到 Heroku

python - 在 python 中观察变量?

python-2.7 - Matplotlib 仅在两个 x 值之间填充曲线下区域

r - 在一张图中绘制多个箱线图

r - ggplot::geom_boxplot() 如何更改 R 中一个框组的宽度

python在不重复的情况下打印字符串中的常见项目

python - Pyplot 交互式缩放

python - 在 WxPython 面板中嵌入 Seaborn 图

r - 将观察数量添加到多个 ggplot2 箱线图中