【问题标题】:Bar Chart that spans dates on x-axis在 x 轴上跨越日期的条形图
【发布时间】:2018-04-09 08:50:46
【问题描述】:

是否有 matplotlib 或其他库可以创建跨 x 轴日期的条形图?示例表:

Start Date  End Date    Number
1/4/2017    1/11/2017   7
1/12/2017   1/18/2017   3
1/20/2017   1/23/2017   5
1/27/2017   1/30/2017   5
2/7/2017    3/1/2017    12

我希望表格中的每一行都有一个条形图。第一个栏将从 2017 年 1 月 4 日开始,跨越到 2017 年 1 月 11 日,高度为 7,以此类推。

我尝试在 x 中使用两个值,但出现“只有长度为 1 的数组可以转换为 Python 标量”的错误。

我尝试计算日期之间的天数并将其用作条形的宽度,但条形的中间位于开始日期。

我找不到可以绘制此类条形图的方法或预配置图表。

【问题讨论】:

  • 我认为您可以将数据处理成直方图格式

标签: python matplotlib bar-chart


【解决方案1】:

如果您尝试使用width= 参数,那么您已经非常接近了。看起来您只是缺少align='edge' parameter to have the bar start at the correct date

ax.bar(df.loc[:,'Start Date'].values, df.loc[:,'Number'], width=[7,6,3,3,22], align='edge')

【讨论】:

  • 啊,我厌倦了“左”或“右”,但不是“边缘”。成功了,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多