Допустим, у вас есть 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,)
Вопросы:
- Как отображать категории в зависимости от времени конкретного события в matplotlib, когда события имеютметаданные (например, сообщения и позиции событий)
- Есть ли лучший способ визуализации данных этого типа?Я открыт для предложений.