MATLAB Answers

How to create a histogram for 12 months using a time table?

14 views (last 30 days)
Wolfgang McCormack
Wolfgang McCormack on 21 May 2021
Commented: Adam Danz on 10 Jun 2021
Hi all,
I have a time table with 365 days (hourly). I want to create a histogram which shows how many values above 50 exists in each month. Could you please instruct me on how to do that?
The time table has multiple columns.
Thank you all in advance.
  1 Comment
Scott MacKenzie
Scott MacKenzie on 9 Jun 2021
@Wolfgang McCormack Seems to me what you are really after is a bar chart: 1 bar for each month with the height of the bar equal to the number of values > 50 (recorded hourly in the month). Is that correct?
It would help if you posted the data so we can see the organization of the table and the sort of "values" that are in it.

Sign in to comment.

Answers (1)

Adam Danz
Adam Danz on 10 Jun 2021
Edited: Adam Danz on 10 Jun 2021
% Create demo timetable
dates = datetime(1999,1,1,'Format','MMM') + hours(0:364*24)';
TT = timetable(dates, randi([25,75],size(dates)),'VariableNames',{'Data'});
% Add column indicating values of "Data" over 50
TT.IsOver = TT.Data > 50;
% Count number of values of 50 per month
MT = retime(TT,'monthly','sum')
MT = 12×2 timetable
dates Data IsOver _____ _____ ______ Jan 37770 371 Feb 33387 309 Mar 37413 363 Apr 35963 351 May 37326 363 Jun 36279 363 Jul 36980 351 Aug 37181 372 Sep 35649 342 Oct 36812 340 Nov 35912 354 Dec 36595 381
The resultant timetable MT contains the columns "IsOver" showing the number of values of "Data" that are over 50 for each row.
  1 Comment
Adam Danz
Adam Danz on 10 Jun 2021
If your table is large, you can place the IsLarge column within its own table since that's the only column that you need to apply retime.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by