Я хотел бы взять лучшее из this и this вопросов. А именно, у меня есть DataFrame
, который содержит имя теста, дату выполнения и результат. И я хочу продемонстрировать, как процент неудачных случаев со временем уменьшался.100% уложенная область/гистограмма в matplotlib с датами по оси X
Мои данные выглядит следующим образом:
TestName;Date;IsPassed
test1;12/8/2016 9:44:30 PM;0
test1;12/8/2016 9:39:00 PM;0
test1;12/8/2016 9:38:29 PM;1
test1;12/8/2016 9:38:27 PM;1
test2;12/8/2016 5:05:02 AM;1
test3;12/7/2016 8:58:36 PM;0
test3;12/7/2016 8:57:19 PM;1
test3;12/7/2016 8:56:15 PM;1
test4;12/5/2016 6:50:49 PM;0
test4;12/5/2016 6:49:50 PM;0
test4;12/5/2016 3:23:09 AM;1
test4;12/4/2016 11:51:29 PM;1
И я использовал этот код для построения дела отдельно:
fig, ax = plt.subplots()
passed = tests[tests.IsPassed == 1]
failed = tests[tests.IsPassed == 0]
passed_dates = mdates.date2num(passed.Date.astype(datetime))
failed_dates = mdates.date2num(failed.Date.astype(datetime))
ax.hist(passed_dates, bins=10, color='g')
ax.hist(failed_dates, bins=10, color='r')
ax.xaxis.set_major_locator(mdates.AutoDateLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y'))
plt.show()
Но сейчас я хотел бы
- Разделить временной интервал в настраиваемое количество ведер
- Подсчитайте количество t (без петель, так как в кадре данных много записей)
- Запланируйте либо диаграмму площади 100%, либо гистограмму с разбивкой на каждый ковш, так что количество с шага 2 равно 100%
Проблема для меня прямо сейчас в том, что идеально работающее решение с hist()
берет на себя автоматическое подведение итогов, и я не вижу способа передать ему ось Y.
Update
Вот что я хотел бы, чтобы выполнить (взятый из другого источника):
Nice! Спасибо за подсказку. Теперь есть способ перейти от абсолютного отсчета по оси Y к проценту? Прямо сейчас некоторые бункеры суммируются до более чем тысячи пробегов, а другие меньше 100 ... –
См. Отредактированный ответ. Если это все равно не поможет, не стесняйтесь спрашивать дальше. – ImportanceOfBeingErnest
Это именно то, что я искал! Спасибо, @ImportanceOfBeingErnest! Есть несколько вещей, которые хотели бы изменить, чтобы адаптироваться к моим потребностям, но это не относится к теме этого вопроса. –