MATLAB Answers

Time Series with month names

37 views (last 30 days)
emily bristow
emily bristow on 3 Dec 2020
Answered: Mathieu NOE on 3 Dec 2020
How do I create a time series for average bottom water dissolved oxygen concentrations, with the month names across the x axis?
The attached excel file is the cocentrations
  1 Comment
BN2
BN2 on 3 Dec 2020
Hello,
Here is a simple way, But I'm sure it isn't the best way to do this.
% cd 'location of your excel file'
table = readtable('Bottom Water Average DO Time Series.xlsx'); % read excel file
plot(table.AverageDO)
set(gca,'xtick',1:7,...
'xticklabel',{'Mar','Apr','May','Jun','Jul','Aug','Nov'});
xlabel('Months') ;
ylabel('AverageDO') ;
Cris LaPierre's answer is the best and perfect solution for doing this.

Sign in to comment.

Answers (3)

Cris LaPierre
Cris LaPierre on 3 Dec 2020
Import your months as categoricals.
Categories are organized alphabetically by default. Use reordercats to place them in order.
Then, plot with the months on the X axis, and the values on the Y.

Rishik Ramena
Rishik Ramena on 3 Dec 2020
You can just convert the month names to datetime.
T = readtable('Bottom Water Average DO Time Series.xlsx');
plot(datetime(T.Month,"InputFormat","MMMM"),T.AverageDO);

Mathieu NOE
Mathieu NOE on 3 Dec 2020
hello Emily
this is my suggestion , with two plot options
filename = "Bottom Water Average DO Time Series.xlsx";
C = readcell(filename);
[m,n] = size(C);
my_xtick_label = string(C(2:m,1)); % start at row index 2 to ignore header line
data = cell2mat(C(2:m,2)); % start at row index 2 to ignore header line
%% plot
figure(1), plot(data,'*-');grid
set(gca,'xtick',1:m-1,'xticklabel',my_xtick_label)
xlabel('Month');
ylabel('Bottom Water Average DO Time');
figure(2), bar(data);
set(gca,'xtick',1:m-1,'xticklabel',my_xtick_label)
xlabel('Month');
ylabel('Bottom Water Average DO Time');

Community Treasure Hunt

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

Start Hunting!

Translated by