如何根据matplotlib中的特定事件时间绘制类别

时间:2018-09-11 18:46:46

标签: python pandas matplotlib data-visualization

让我们说您有一个python字典,描述了某项活动在不同时间发生的“事件”。

activity = {
   "start_time":"2018-09-05 06:30:53.242",
   "end_time":"2018-09-09 09:30:53.242",
   "eventType1":[
      {
         "event_pos":123,
         "event_time":"2018-09-05 06:50:53.242",
         "message":"blah"
      },
      {
         "event_pos":125,
         "event_time":"2018-09-05 07:50:53.242",
         "message":"type1 event blah"
      }
   ],
   "eventType2":[
      {
         "event_pos":18,
         "event_time":"2018-09-05 06:40:58.242",
         "message":"type2 event1"
      },
      {
         "event_pos":700,
         "event_time":"2018-09-05 08:59:58.242",
         "message":"type2 event2"
      }
   ]
}

我的意图是在图形和/或表格中可视化它。最初,我将其转换为表,前两行为开始和结束,事件实例,消息和时间为后续行。

问题在于事件可以重复,并且因为它们可以重复,消息被重复(以毫秒为单位)。因此,后续事件列表可以非常迅速地增长,并且重复消息的间隔仅为毫秒。这使表格很难看清。

同时,我所做的是通过消息获取事件的唯一实例,并显示每个事件消息的出现次数。这样可以清理事情,但是可视化这些事件发生的位置也很有用。

我的目标:

根据类别创建事件的时间表。

  • 具有y轴作为[eventType1,eventType2,eventType3等...]
  • 将x轴作为活动持续时间的日期时间
  • 已将每个事件的属性水平地打勾(可以将消息水平地打勾),尽管我觉得这也会很混乱

我尝试过的事情:

此信息之后-> Matplotlib timelines

但是我在获取类别(eventTypes)作为y轴和python日期时间作为x轴时遇到麻烦。我将其转换为matplotlib日期时间字符串,但经常出现以下问题:

ValueError: x and y must have same first dimension, but have shapes (20,) and (2,)

问题:

  1. 当事件具有元数据(例如消息和事件位置)时,如何根据matplotlib中的特定事件时间绘制类别
  2. 是否有更好的方法可视化此类数据?我愿意接受建议。

0 个答案:

没有答案