Search code examples
pythondatetimematplotlibhistogram

plot histogram of datetime.time python / matplotlib


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


Solution

  • 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(occurence_list):
        hour_list = [t.hour for t in occurence_list]
        print hour_list
        numbers=[x for x in range(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 exchange rate for GBPUSD