Как отобразить категории в зависимости от времени определенного события в matplotlib - PullRequest
0 голосов
/ 11 сентября 2018

Допустим, у вас есть python dict, который описывает «события», которые происходили в разное время во время определенной деятельности.

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 и т. Д.]по горизонтали этот атрибут для каждого события (возможно, размещение сообщения через галочку, по горизонтали, хотя я чувствую, что это также будет беспорядок)

Что я пробовал:

после этогоpost -> Временные шкалы Matplotlib

Но у меня проблемы с получением категорий (eventTypes) в качестве оси Y и даты Python в качестве оси X.Я конвертирую в строки даты и времени matplotlib, но часто возникают такие вопросы, как:

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

Вопросы:

  1. Как отображать категории в зависимости от времени конкретного события в matplotlib, когда события имеютметаданные (например, сообщения и позиции событий)
  2. Есть ли лучший способ визуализации данных этого типа?Я открыт для предложений.
...