我尝试创建一个盒子图与海岸,如下所示:
我有一些合成数据,我有24个不同的类别,它们是这样生成的:
import numpy as np
x = np.arange(10, 130, step=5)现在,对于这些类别中的每一个,我生成了5个随机观察值,如下所示:
y = np.zeros(shape=(len(y), 5)) # Each row contains 5 observations for a category现在,我要做的是用海岸线做一个盒子图,我沿着y轴(突出显示置信区间)和x轴绘制这5个值,我想要这些类别中的每一个。所以,我这样做了:
import seaborn as sis
fig = sns.boxplot(x=x, y=y)
fig.plt.show()但是,这有一个例外,即数据必须是一维的。我不确定如何组织我的数据,以便我可以绘制它。
发布于 2016-09-21 01:30:31
正如您所指出的,问题在于输入数据的形状。我不想对您正在尝试做的事情做太多的假设,但我认为您正在寻找的东西如下
x = np.arange(10, 130, step=5)
y = 4 * np.random.randn(x.size, 5) + 3
x_for_boxplot = np.repeat(x, 5)
y_for_boxplot = y.flatten()
ax = sns.boxplot(x_for_boxplot, y_for_boxplot)其中x_for_boxplot和y_for_boxplot已经被重构,使得它们是相同大小的一维数组,这正是sns.boxplot正在寻找的。我还更改了y,使其由随机正常值组成,而不是由零组成。

https://stackoverflow.com/questions/39599409
复制相似问题