Python-matplotlib-即使条形长度为零,也显示所有x轴标注

ca1c2owp  于 2022-09-21  发布在  Python
关注(0)|答案(1)|浏览(145)

我有一个DataFrame,它按月显示事件的计数,但只有5(5)和11(11)之间的月份存在,其他月份都是空闲的。

我仍然想显示其他月份,即使条长为零。

我试过了:

df_grouped = df.departureDate.groupby(df['departureDate'].dt.month).count()

f, (ax1) = plt.subplots(1, figsize=(10,5))

ax1.bar(range(len(df_grouped)), df_grouped, alpha=0.5, color='b')

ax1.set_xticks(pd.np.arange(0, 12, 1))

当添加最后一行时,我得到了所有月份的x标签,但月份没有正确Map到x标签。5月份从1开始,而不是从5开始,11月份在6结束,而其余的空x Labe一直持续到12。

DataFrame

Final plot

Desired plot

50pmv0ei

50pmv0ei1#

打印时,将range(len(df_grouped))用于x轴。这会为导致问题的x轴指定值0-6。您应该将Month列分配给x轴。由于您尚未提供数据,我正在创建虚拟数据以显示所需的更改。看看这是不是你要找的东西。


## My dummy data

df_grouped=pd.DataFrame({'Val':[0.1, 0.05, 1.3, 0.4, 0.2, 0.5, 0.1], 'month':[5,6,7,8,9,10,11]})
f, (ax1) = plt.subplots(1, figsize=(10,5))
ax1.bar(df_grouped['month'], df_grouped['Val'], alpha=0.5, color='b') ##Using month as x-axis values

ax1.set_xticks(np.arange(0, 13, 1))

相关问题