Histogram using Date Stamps

I have three years of dates and I want to know how to make a histogram only taking months into consideration.
The data is in datestam format, so when I plot a histogram is separates the months for each year.
How do I do this?
Thanks!

3 Comments

Adam Danz
Adam Danz on 26 Jul 2019
Edited: Adam Danz on 26 Jul 2019
What is datestam? Are you working with a timetable?
Do you mean you want to split all of you data up into 12 months so your histogram has 12 bars or do you want to split all of your data up by month so your histogram has 36 bars (12 months * 3 years)?
Sorry about the unclear question! My data is in date stamps (like this: 2012-01-21) , in datetime format.
I have three years, so when I plot a histogram as is, it produces 36 bars, one for each month in each year.
What I want is 12 bars, so for example, the January bar should include all January values for all three years.
Does this clear up my question?
Thanks for the quick response!
That's clearer! If you get stuck with the recommendation in my answer, leave a comment and I can try to help further.

Sign in to comment.

 Accepted Answer

Oh, if it's the histogram of the dates you want, then groupsummary may not be the best tool (sorry Adam!)
histogram(yourdatetimevector.Month, 'BinMethod', 'integers')

2 Comments

Just saw this after my ans update, no prob at all!
This worked beautifully! Thanks to both of you guys!

Sign in to comment.

More Answers (1)

Adam Danz
Adam Danz on 26 Jul 2019
Edited: Adam Danz on 26 Jul 2019
If your data are organized in a table or array, use groupsummary() (requires r2018a). The groupbin should be 'monthname'(see Guillaume's comment below). Then feed that summary data into historgram().
[update]
If you're just counting the number of months in a datetime vector, you can use month() along with histcounts().
% dt is your datetime vector
c = histcounts(month(dt),1:13);
mo = {'jan' 'feb' 'mar' 'apr' 'may' 'jun' 'jul' 'aug' 'sep' 'oct' 'nov' 'dec'};
histogram('categories',mo,'BinCounts',c)

3 Comments

The groupbin could also be 'monthofyear'. The only difference between the two is the format of the name of the bin (char vector for 'monthname', number for 'monthofyear') in the output table.
You probably want to use bar to display the data. If you use histogram, it has to be the
histogram('BinEdges',edges,'BinCounts',counts)
syntax, otherwise you'd be building a histogram of the histogram.
I'm not sure I completley understand how this works, or if it is compatible with datetime types. I don't understand how to apply groupsummary to my data based on looking at the examples on its page.
I'm using a 900000x1 datetime array.
@Sophia, see updated answer.

Sign in to comment.

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!