построить гистограмму datetime.time python / matplotlib

Я пытаюсь построить гистограмму значений datetime.time. Где эти значения дискретизируются на пятиминутные срезы. Данные в виде списка выглядят следующим образом:

['17:15:00', '18:20:00', '17:15:00', '13:10:00', '17:45:00', '18:20:00']

Я хотел бы построить гистограмму или какую-либо форму графика распределения, чтобы можно было легко проверить количество появлений каждого времени.

NB. Данные каждый раз тогда дискретируются. Максимальное количество интервалов в гистограмме будет 288 = (60/5 * 24).

Я просмотрел matplotlib.pyplot.hist. Но для этого требуется какой-то непрерывный скаляр


person Spacen Jasset    schedule 03.12.2011    source источник
comment
Самым простым может быть преобразование времени в секунды и использование его для построения гистограммы. Затем вы можете вручную изменить метки гистограммы.   -  person David Zwicker    schedule 03.12.2011
comment
Или преобразуйте время в интервалы напрямую = секунды / 300 и нанесите на график счетчик каждого интервала.   -  person Dave    schedule 03.12.2011


Ответы (2)


Я сделал то, что сказал Дэвид Цвикер, использовал секунды, а затем изменил ось x. Я посмотрю, что Дэйв сказал о «мусорных ведрах». Это работает примерно и дает для начала график с полосой в час.

def chart(occurance_list):
    hour_list = [t.hour for t in occurance_list]
    print hour_list
    numbers=[x for x in xrange(0,24)]
    labels=map(lambda x: str(x), numbers)
    plt.xticks(numbers, labels)
    plt.xlim(0,24)
    plt.hist(hour_list)
    plt.show()

частота самого низкого дневного обменного курса GBPUSD

person Spacen Jasset    schedule 04.12.2011
comment
Принять: что сказали Дэвид Цвикер и @Dave - person Spacen Jasset; 06.12.2011
comment
Интересно, что matplotlib не рассматривает это более чисто. matplotlib имеет прекрасную функциональность для времени, но по какой-то причине matplotlib и pandas не хотят рассматривать время как числа (также в смысле добавления / вычитания и т. д.). - person Marses; 22.06.2021

вам нужно преобразовать данные в две переменные, а затем вы можете использовать plotlab для построения гистограмм.

person Community    schedule 03.12.2011
comment
Я действительно не понимаю, что вы здесь имеете в виду. - person Spacen Jasset; 04.12.2011