График временных периодов на графике от панд - PullRequest
0 голосов
/ 30 ноября 2018

Я не знаю, возможно ли это сделать с помощью matplotlib или других инструментов визуализации в дистрибутиве Anaconda.

Я знаю, как это сделать с помощью JavaScript, и могу просто пойти по этому пути, но решил, чтопосмотрим, есть ли способ сделать это в моей записной книжке Jupyter.У меня есть несколько периодов времени с начальной и конечной датой-временем для каждой строки данных, которые я хочу построить.Моя цель на самом деле найти пробелы, в которых нет ни одного периода времени ни в одной строке.

Вот пример: http://visjs.org/examples/timeline/other/groupsPerformance.html

Все строки имеют хотя бы один период времени, но некоторые имеют несколькопериоды.Есть ли способ сделать это в Matplotlib или Seaborn?

Достаточно указателя на специфическую документацию для этого вида визуализации или примера.

Пример кадра данных:

    id           start1        end1      start2        end2
0  Bob       2018-11-29  2018-11-30  2018-12-01  2018-12-31
1  James     2018-10-19  2018-10-31         NaT         NaT
2  Jane      2018-04-05  2018-07-12  2018-11-29  2018-11-30

Итак, Y-ось будет содержать поле id, а ось X будет временем.Каждая строка будет иметь (разбитые) горизонтальные столбцы для каждого, где это применимо (может быть или не быть второго периода).

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Если вы открыты для использования plotly, это может приблизить вас -

df_full = df[['id','start1','end1']].rename(columns={'id':'Task','start1':'Start','end1':'Finish'}).append(
    df[['id','start2','end2']].rename(columns={'id':'Task','start2':'Start','end2':'Finish'}),sort=False).reset_index()

import plotly.plotly as py
import plotly.figure_factory as ff

fig = ff.create_gantt(df_full)
py.iplot(fig, filename='gantt-simple-gantt-chart', world_readable=True)

enter image description here

РЕДАКТИРОВАТЬ

Для группировки задач используйте -

fig = ff.create_gantt(df_full, group_tasks=True)
py.iplot(fig, filename='gantt-group-tasks-together', world_readable=True)

enter image description here

0 голосов
/ 30 ноября 2018

broken_barh() в matplotlib, кажется, соответствует вашим потребностям.Я бы предоставил более подробную информацию, но для этого мне понадобятся некоторые данные.

...