Python 箱线图不在一个垂直位置

Python 箱线图不在一个垂直位置,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我想做一个有两列的箱线图。立柱的总长度为50。我想绘制一列和另一列的每10个值,而不是右侧,最后10个值也在前面一列的右侧,依此类推。此外,我想在同一个图中绘制第二列箱线图。因此,前10行和后10行应该彼此靠近,其他10行应该彼此靠近。现在我只绘制一列,但所有列都位于同一轴/位置。我需要如何索引我的数据,以使绘图水平排序 此外,我希望看到所有的中位数的阴谋。 当前为一列: 我真正想做的是: 从第三个例子中,根据您的问题使用随机数据。如果愿意,可以使用字符串更改集合的名称。关键是在数据帧的不同

我想做一个有两列的箱线图。立柱的总长度为50。我想绘制一列和另一列的每10个值,而不是右侧,最后10个值也在前面一列的右侧,依此类推。此外,我想在同一个图中绘制第二列箱线图。因此,前10行和后10行应该彼此靠近,其他10行应该彼此靠近。现在我只绘制一列,但所有列都位于同一轴/位置。我需要如何索引我的数据,以使绘图水平排序

此外,我希望看到所有的中位数的阴谋。 当前为一列:

我真正想做的是:

从第三个例子中,根据您的问题使用随机数据。如果愿意,可以使用字符串更改集合的名称。关键是在数据帧的不同列中写下不同的特征,这样可以得到100行

df = pd.DataFrame(np.random.rand(100), columns=['y'])

set_array = np.zeros(50)
for x in range(5):
    set_array[x*10:(x+1)*10] = x*10
set_array = np.concatenate((set_array, set_array))

group_array = np.empty(100, dtype='str')
for x in range(100):
    if x<50:
        group_array[x]='A'
    else:
        group_array[x]='B'

df['set'] = pd.Series(set_array)
df['hue'] = pd.Series(group_array)

fig, ax2 = plt.subplots()
ax2 = sns.boxplot(x="set", y="y", hue="hue",
              data=df)

在您的示例中,A和B是垂直堆叠的,如果A和B在两个不同的列中,我如何处理?您可以使用pd.concatdf[0],df[1]将这两个列连接起来,使其成为堆叠的。
df = pd.DataFrame(np.random.rand(100), columns=['y'])

set_array = np.zeros(50)
for x in range(5):
    set_array[x*10:(x+1)*10] = x*10
set_array = np.concatenate((set_array, set_array))

group_array = np.empty(100, dtype='str')
for x in range(100):
    if x<50:
        group_array[x]='A'
    else:
        group_array[x]='B'

df['set'] = pd.Series(set_array)
df['hue'] = pd.Series(group_array)

fig, ax2 = plt.subplots()
ax2 = sns.boxplot(x="set", y="y", hue="hue",
              data=df)