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 Commenti

Adam Danz
Adam Danz il 26 Lug 2019
Modificato: Adam Danz il 26 Lug 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!
Adam Danz
Adam Danz il 26 Lug 2019
That's clearer! If you get stuck with the recommendation in my answer, leave a comment and I can try to help further.

Accedi per commentare.

 Risposta accettata

Guillaume
Guillaume il 26 Lug 2019
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 Commenti

Adam Danz
Adam Danz il 26 Lug 2019
Just saw this after my ans update, no prob at all!
This worked beautifully! Thanks to both of you guys!

Accedi per commentare.

Più risposte (1)

Adam Danz
Adam Danz il 26 Lug 2019
Modificato: Adam Danz il 26 Lug 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 Commenti

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.
Adam Danz
Adam Danz il 26 Lug 2019
@Sophia, see updated answer.

Accedi per commentare.

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by