График периодов времени в шкале времени от панд

1

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

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

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

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

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

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

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

  • 0
    Недавно мне пришлось реализовать подобный сюжет с помощью matplotlib. Я использовал barh но, к сожалению, мне пришлось самому делать большинство расчетов для сюжета ... так же, как это
  • 0
    Можете ли вы предоставить пример входных данных?
Показать ещё 1 комментарий
Теги:
pandas
matplotlib
visualization
seaborn

2 ответа

1
Лучший ответ

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

  • 0
    Я ценю это!
  • 0
    Я добавил пример данных к вашему сведению, если вы знаете простой способ - иначе постараюсь выяснить это
1

Если вы открыты для использования 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)

Изображение 174551

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

Чтобы объединить задачи вместе, используйте -

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

Изображение 174551

  • 1
    Это выглядит довольно хорошо, хотя в идеале только одна строка на строку - если это возможно. Но все равно очень хорошее начало
  • 0
    @ArthurDent обновил и пожалуйста проверьте
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню