用线条和箱线图将matplotlib图中的xticks对齐

时间:2018-11-02 22:01:49

标签: python pandas dataframe matplotlib

我无法获得以下图以沿x轴正确对齐。具体来说,我想在描述完整样本的箱线图上绘制一条水平线,代表数据框中的最后一个值。这是代码。目前,我已注释掉将绘制箱线图的行

index = pd.date_range('1/1/2018', '2/1/2018')

data = pd.DataFrame({'a':np.random.randn(32)}, index=index)

fig, ax = plt.subplots(figsize=(6,3))

ax.hlines(data.iloc[-1],xmin=pd.RangeIndex(stop=len(list(data.columns)))+.15,xmax=pd.RangeIndex(stop=len(list(data.columns)))+.85,
                  **{'linewidth':1.5})

# ax.boxplot(data.values)
ax.set_xticks(pd.RangeIndex(stop=len(list(data.columns)))+0.5)
ax.set_xticklabels(list(data.columns), rotation=0)

ax.tick_params(axis='x',length=5, bottom=True)

这是上面的输出(到目前为止很好)

without the boxplot

如果我从上方取消注释该行,则代码将产生此错误,这是未对齐的:

with the boxplot

有关如何使其排队的任何提示?

1 个答案:

答案 0 :(得分:2)

显然,您对要放置在x = 0.5处的箱线图有非常清晰的见解。但是您忘了告诉盒子图了。

ax.boxplot(data.values, positions=[0.5])

enter image description here