MATLAB: How do separate plot into months

datemonthplot labelplotting

I have an array of 8760 numbers consisting of a data point for every hour of a year. Instead of having the x-axis separated by hours (1-8760), how can I change it to months?
Would creating a vairable for each month with the corresponding hours from the year and then combining all 12 plots work?

Best Answer

  • probably easiest would be to create a datetime object:
    % sample data
    data = rand(1,8760);
    % starting year/month/day of data
    Y = 2020;
    M = 1;
    D = 1;
    % hours of data
    H = 1:8760;
    t = datetime(Y,M,D,H,0,0);
    % plot your data, formating x-axis in month names
    plot(t,data,'DatetimeTickFormat','MMMM')
    % make sure every month gets a tick
    xticks(datetime(Y,1:12,0))
    % angle ticks for readability
    xtickangle(45)