plot histogram of datetime.time python / matplotlib

13,752

I did what David Zwicker said and used seconds, and then changed the x axis. I will look at what Dave said about 'bins'. This works roughly and gives a bar per hour plot to start with.

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()

frequency of lowest daily exahange rate for GBPUSD

Share:
13,752
Spacen Jasset
Author by

Spacen Jasset

Updated on June 15, 2022

Comments

  • Spacen Jasset
    Spacen Jasset about 2 years

    I am trying to plot a histogram of datetime.time values. Where these values are discretized into five minute slices. The data looks like this, in a list:

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

    I would like to plot a histogram, or some form of distribution graph so that the number of occurrences of each time can be examined easily.

    NB. Given each time is discretised then. The maximum number of bins in a histogram would be 288 = (60 / 5 * 24)

    I have looked at matplotlib.pyplot.hist. But is requires some sort of continuous scalar

  • Spacen Jasset
    Spacen Jasset over 12 years
    Accept: what David Zwicker and @Dave said
  • Marses
    Marses about 3 years
    it is interesting that matplotlib doesn't treat this more cleanly. matplotlib has perfectly good functionality for datetimes, but for some reason matplotlib and pandas don't want to treat clock times like numbers (also in the sense of adding/subtracting etc...).