Я не знаю, возможно ли это сделать с помощью 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 будет временем. Каждая строка имеет (разбитые) горизонтальные бары для каждого, где это применимо (может быть или не быть второго периода).
broken_barh()
в matplotlib, похоже, соответствует вашим потребностям. Я бы предоставил более подробную информацию, но для этого мне понадобились бы некоторые образцы данных.
Если вы открыты для использования 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)
РЕДАКТИРОВАТЬ
Чтобы объединить задачи вместе, используйте -
fig = ff.create_gantt(df_full, group_tasks=True)
py.iplot(fig, filename='gantt-group-tasks-together', world_readable=True)
barh
но, к сожалению, мне пришлось самому делать большинство расчетов для сюжета ... так же, как это