4 views (last 30 days)

I have data of 15 years as i have attached here, which has the format as: Date, time, Pressure data, Temperature Data.

I want to plot the temperature dataset year over year, lets say on x-axis january-december is labeled i want to plot each year data (just Temperature) with different colored plots on the same graph.

Thanks in advance

meghannmarie
on 11 Dec 2019

Try something like this:

fid = fopen('Mod21_All_Inclusive_Data_Nov2019.txt');

Mod = textscan(fid,'%s %s %n %n');

fclose(fid); % Close the file

Temp = Mod{3};

DMY =cellstr(Mod{1});

HM = cellstr(Mod{2});

DMYHM = datetime(DMY,'InputFormat','MM/dd/yy') + duration(HM,'InputFormat','hh:mm');

Y = year(DMYHM);

yrs = unique(Y);

x_axis = day(DMYHM,'dayofyear') + (hour(DMYHM) + (minute(DMYHM)/60))/24;

fig = figure;

hold on

for t = 1:numel(yrs)

yr = yrs(t);

idx = yr == Y;

plot(x_axis(idx),Temp(idx));

end

XTicks = nan(1,12);

XTickLabels = cell(12,1);

for n = 1:12

dt = datetime(2019,n,01);

XTicks(n) = day(dt,'dayofyear');

XTickLabels(n) = month(dt,'name');

end

ax = gca;

ax.XTick = XTicks;

ax.XTickLabel = XTickLabels;

fclose(fid);

meghannmarie
on 12 Dec 2019

dpb
on 12 Dec 2019

"If you do not like those long lines connecting the data gaps, you can identify the data gaps and plot those lines separately."

Or fill missing data w/ NaN and will be silently ignored by plot. Still takes finding the breakpoints but would keep one line handle per year for things like legend, linestyle etc., ...

Sign in to comment.

Hiro Yoshino
on 11 Dec 2019

Convert the date information to datetime type and extract just "months" and "days" using the functions, "month" and "day".

This way, you can remove "year" information from your dataset and thus you can line them up in the same x-axis.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## Direct link to this comment

https://ch.mathworks.com/matlabcentral/answers/496054-plotting-of-15-years-data-on-same-graph#comment_776878

⋮## Direct link to this comment

https://ch.mathworks.com/matlabcentral/answers/496054-plotting-of-15-years-data-on-same-graph#comment_776878

## Direct link to this comment

https://ch.mathworks.com/matlabcentral/answers/496054-plotting-of-15-years-data-on-same-graph#comment_776881

⋮## Direct link to this comment

https://ch.mathworks.com/matlabcentral/answers/496054-plotting-of-15-years-data-on-same-graph#comment_776881

Sign in to comment.