Loop plotting for individual years

4 Ansichten (letzte 30 Tage)
Cedric am 8 Nov. 2022
Kommentiert: Cedric am 8 Nov. 2022
I am trying to plot the average ice concentration on y axis and the date from december 1 st to 30 of march for each year. (10 individual plots for each year ) I donot know how to do, I assume I wil need to use a loop to start from 2011 to 2011. I would want the plots to show the gaps of the missing dates. where on x axis dates from 1st of december to 30 march for each year and y axis the avaiable average ice concentrations for each year period. The code is as below . Any recommendation or help will be appreciated.
T1 = readtable("Ice concentration data.csv")
VN = T1.Properties.VariableNames;
lgdstr = cellfun(@(x)strrep(x,'_','\_'), VN(2:end), 'Unif',0)
plot(T1.DateTime, T1{:,2:end})
legend(lgdstr, 'Location','best')
  2 Kommentare
Cedric am 8 Nov. 2022
On the x axis the date from december 1st to march 30 abd y axis the average ice concentration for that period. But not all dates in these period are on csv file. I still want it to show december to march on axis, and themissing y values as no markers

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Davide Masiello
Davide Masiello am 8 Nov. 2022
There's no legend in the example below, because I am not sure what you wanted to do with the cellfun function.
Nevertheless, it should help.
T1 = readtable("Ice concentration data.csv");
allyears = unique(year(T1.DateTime));
for yrs = 1:length(allyears)
idx = year(T1.DateTime)==allyears(yrs);
plot(T1.DateTime(idx), T1{idx,2:end})
grid on

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 8 Nov. 2022
g = findgroups(ymd(T1.DateTime));
Now you can splitapply() some plotting code on elements of your table using groupping variable g




Community Treasure Hunt

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

Start Hunting!

Translated by