小编mid*_*idi的帖子

使用 ax.bar() 使用 matplotlib 绘制多个条形图

跟进我之前的问题:按小时将日期时间对象排序到 pandas 数据框,然后可视化为直方图

我需要为代表观看者计数的一个 X 轴值绘制 3 个条形图。现在他们显示一分钟以内或以上的内容。我需要一个向全体观众展示的内容。我有数据框,但我似乎无法让它们看起来正确。只要有 2 个栏,我就没有问题,看起来就像我想要有两个栏: 我需要为代表观看者计数的一个 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]
Run Code Online (Sandbox Code Playgroud)

我用来表示 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')
Run Code Online (Sandbox Code Playgroud)

现在我设置了align='edge',两个宽度值是绝对值和负值。但我不知道如何让它看起来正确的 3 条。我没有找到任何关于酒吧的定位参数。我也尝试使用 plt.hist() 但无法获得与 plt.bar() 函数相同的输出。

因此,我希望在左侧上方显示的图表上有第三个条形图,比其他两个条形图稍宽一些。

python data-visualization matplotlib pandas data-science

5
推荐指数
2
解决办法
2万
查看次数