Boxplot和Barchart在使用matplotlib时移位



我试图对齐barplot和boxplot,但是当我这样做时,boxplot基本上沿着x轴移动。这是我之前的代码:

d = {"1":[140,118], "2":[133,111], "3":[111, 86]}
df = pd.DataFrame(data=d)
x = df["1"]
y = df["2"]
z = df["3"]
columns =[x, y, z]
l=["top", "middle", "bottom"]
ice_val = [140, 133, 111]
withoutice_val = [118, 111, 86]
x = np.arange(len(l))
width = 0.35
fig, ax = plt.subplots()
r1 = ax.bar (x - width/2, ice_val, width, label="with ice-activity")
r2 = ax.bar (x + width/2, withoutice_val, width, label="without ice-activity")
ax1=ax.twinx()
ax1.boxplot(columns)
ax1.set_ylim(ax.get_ylim())
ax.set_xticks(x)
plt.show()

得到如下结果:

产生plotpng

已经有一些相同问题的问题,但这些答案似乎无法解决我的问题(或者我只是没有足够的Python经验).

我真的很感谢任何帮助!谢谢! !
np.arange 

从0开始,你可以做

x = 1 + np.arange(len(l))