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 个评论

Adam Danz
Adam Danz 2019-7-26
编辑:Adam Danz 2019-7-26
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.

请先登录,再进行评论。

 采纳的回答

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 个评论

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

请先登录,再进行评论。

更多回答(1 个)

Adam Danz
Adam Danz 2019-7-26
编辑:Adam Danz 2019-7-26
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 个评论

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.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Discrete Data Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by