Повторите этот график в python - что это за график? - PullRequest
3 голосов
/ 21 апреля 2020

Я пытаюсь воссоздать график из этого поста в Reddit. Как бы я воссоздал такую ​​диаграмму в python? Как бы вы назвали этот тип диаграммы?

Диаграмма выглядит следующим образом:

enter image description here

Я пробовал этот похожий подход , но пузырьковая диаграмма не совсем то, что я ' ищу Вот упрощенная версия моих данных:

Date,Asleep,Awake
3/31,12:00 AM,5:00 AM
3/31,6:00 AM,8:30 AM
3/31,12:00 PM,2:45 PM
3/31,5:30 PM,8:30 PM
3/31,11:00 PM,11:59 PM
4/1,12:00 AM,4:30 AM
4/1,6:00 AM,9:00 AM
4/1,11:30 AM,2:00 PM
4/1,5:00 PM,9:00 PM
4/1,10:45 PM,11:59 PM
4/2,12:00 AM,2:30 AM
4/2,3:00 AM,8:00 AM
4/2,10:30 AM,2:00 PM
4/2,5:00 PM,10:00 PM
4/3,12:00 AM,8:30 AM
4/3,11:00 AM,3:00 PM
4/3,6:00 PM,9:00 PM
4/3,10:30 PM,11:59 PM
4/4,12:00 AM,9:00 AM
4/4,10:30 AM,12:00 PM
4/4,3:30 PM,5:00 PM
4/4,8:00 PM,10:30 PM
4/4,11:00 PM,11:59 PM

1 Ответ

2 голосов
/ 21 апреля 2020

Это дает вам часть пути ...

Преобразование в правильные типы

df['Date'] = pd.to_datetime(df.Date.radd('2020/'), format='%Y/%m/%d')
df['Asleep'] = pd.to_datetime(df.Asleep) - pd.Timestamp('now').normalize()
df['Awake'] = pd.to_datetime(df.Awake) - pd.Timestamp('now').normalize()

vlines

import matplotlib.pyplot as plt

plt.vlines(df.Date, df.Asleep, df.Awake)

Отсюда вам нужно выяснить, как форматировать оси и утолщать линии. Это больше matplotlib, чем я хочу иметь дело с этим утром.

enter image description here

...