回答上一个问题:按小时对日期时间对象进行排序,然后将其可视化到直方图中
我需要为一个X轴值绘制3个条形图来表示观众数量。现在它们显示的是一分钟以下和以上的观众数量。我需要显示总体的观众数量。我已经有了数据框架,但我似乎无法使它们看起来正确。只有两个条形图时,没有问题,它看起来就像我想要的那样:
与此相关的代码:
# Time and date stamp variables
allviews = int(df['time'].dt.hour.count())
date = str(df['date'][0].date())
hours = df_hist_short.index.tolist()
hours[:] = [str(x) + ':00' for x in hours]
我使用的“小时”变量用于表示X轴可能有问题,因为我将其转换为字符串,这样我可以使小时看起来像23:00
而不仅仅是pandas索引输出23
等。我曾经看到过人们添加或从X中减去值以改变条形图的位置的示例。
fig, ax = plt.subplots(figsize=(20, 5))
short_viewers = ax.bar(hours, df_hist_short['time'], width=-0.35, align='edge')
long_viewers = ax.bar(hours, df_hist_long['time'], width=0.35, align='edge')
现在我设置了
align='edge'
,两个宽度值都是绝对值和负数。但是我不知道如何在三个条形图中使其看起来正确。我没有找到任何关于这些条形图位置的参数。另外,我已经尝试使用plt.hist()函数,但我无法得到与plt.bar()函数相同的输出。因此,我希望在上面显示的图形中左侧有第三个条形图,比其他两个条形图略宽一些。
hours
)中完全控制着条形图的位置。与 Excel 相比,这似乎有些奇怪,直到你尝试在 Excel 中创建具有不均匀间距和不等宽度的条形图 :/ - Dan