【问题标题】:Creating timeseries histogram with matplotlib使用 matplotlib 创建时间序列直方图
【发布时间】:2019-01-04 02:01:01
【问题描述】:

我有一个带有时间戳的数据点的 json 文件,需要一个直方图来显示每单位时间的数据点数量。数据格式如下:

database = {
  "data": [
    {
      "timestamp": "Mon Aug 01 00:00:01 +0000 1901",
      "user": 796327373691985921,
      "text": "blah blah there were no tweets in 1901!?!",
      "polarity": 0.2,
      "subjectivity": 0.2
    },
    {
      "timestamp": "Mon Aug 01 00:00:10 +0000 1901",
      "user": 16548385,
      "text": "blah blah blah"
      "polarity": 0.0,
      "subjectivity": 0.0
    }
  ]
}

我无法从字典中选择时间戳项。例如,当我运行此命令时:print(database["data"][0]["timestamp"],它为我提供了一个数据点的时间戳,但是如何根据时间戳将所有推文组织到时间桶中?我怀疑需要一个迭代循环,但我不知道如何继续。再次感谢您!

【问题讨论】:

标签: matplotlib histogram


【解决方案1】:

1) 将您的时间戳转换为自一天开始以来的秒数(可能使用datetime.timedelta)。

2) 现在,创建具有固定 bin 边缘的直方图:

edges = list(range(0, 24 * 3600, 3600))
plt.hist(data, edges)

【讨论】:

  • 感谢您的帮助。我无法从字典中选择时间戳项。例如,当我运行此命令时:print(database["data"][0]["timestamp"],它为我提供了一个数据点的时间戳,我可以使用 datetime.timedelta 对其进行操作,但我该如何应用这些更改所有数据点?我怀疑需要一个迭代循环,但我不知道如何继续。再次感谢您!
  • 我建议您使用列表推导来提取它。见pythonforbeginners.com/basics/list-comprehensions-in-python
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 2021-03-12
相关资源
最近更新 更多