【发布时间】:2019-09-28 07:16:57
【问题描述】:
跟进我之前的问题:Sorting datetime objects by hour to a pandas dataframe then visualize to histogram
我需要为一个代表观众人数的 X 轴值绘制 3 个条形图。现在他们显示不到一分钟及以上的内容。我需要一个显示整体观众。我有数据框,但我似乎无法让它们看起来正确。只有 2 条我没有问题,看起来就像我想要有两条条一样:
代码的相关部分:
# 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 而不仅仅是熊猫索引输出 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',两个宽度值是绝对值和负值。但我不知道如何使它看起来与 3 条正确。我没有找到任何关于酒吧的定位论据。我也尝试使用 plt.hist() 但我无法获得与 plt.bar() 函数相同的输出。
因此,我希望在上图左侧显示第三条,比其他两条宽一点。
【问题讨论】:
-
“我没有找到任何条形定位参数。” - 这是因为您可以完全控制第一个参数(您的
hours)中柱的位置。与 Excel 之类的东西相比,这似乎是一个奇怪的麻烦,直到您尝试在 Excel 中创建一个间距不均匀且条宽不等的条形图:/
标签: python pandas matplotlib data-visualization data-science