plotting data from multiple sheets by ID and day
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi there,
I have data from multiple sheets of a workbook that I am looking to plot separately by ID (first column) and day (sheet name)
The data to plot from each sheet is column 6 (x) and column 5 (y)
The IDs run 1:48 - so 48 separate tiled plots, and within each plot is (up) to 8 lines (days or sheets - which would be the legend)
I am wondering whether this is possible for separate sheets
So far i have used splitapply to group the data by ID but this still plots all the IDs on one graph - not sure how I can separate this and also include the other sheets
B = findgroups(RLCAD(:,1));
dataByID = splitapply( @(varargin) varargin, RLCAD, B);
[nID, ~]=size(dataByID);
figure;
hold on;
for i=1:1:nID
plot(dataByID{i,6},dataByID{i,14});
end
0 Kommentare
Akzeptierte Antwort
KSSV
am 20 Feb. 2023
Bearbeitet: KSSV
am 20 Feb. 2023
fname = 'https://in.mathworks.com/matlabcentral/answers/uploaded_files/1300500/RLC_AD.xlsx' ;
sheets = sheetnames(fname) ;
h = cell(8,48) ;
figure
for i = 1:length(sheets)
T = readtable(fname,'Sheet',sheets(i)) ;
id = T.(1) ;
F = T.(6) ; % This is x-axes data
Yield = T.(4) ; % This is y-axes data
for j = 1:48
fprintf('%s sheet of %d id\n',sheets(i),j) ;
hold on
h{i,j} = subplot(8,6,j) ;
plot(h{i,j},F(id==j),Yield(id==j))
title(sprintf('id=%d',j))
drawnow
if i == length(sheets)
legend(sheets)
end
end
end
3 Kommentare
Weitere Antworten (1)
Sulaymon Eshkabilov
am 20 Feb. 2023
Here is the complete solution code:
FName = 'RLC_AD.xlsx';
for jj=1:numel(sheetnames(FName))
RLCAD = readmatrix(FName, 'Sheet', num2str(jj));
B = findgroups(RLCAD(:,1));
dataByID = splitapply( @(varargin) varargin, RLCAD, B);
[nID, ~]=size(dataByID);
figure(jj);
for i=1:nID
x = dataByID{i,1}(:,6);
y = dataByID{i,1}(:,5);
plot(x,y); hold all
end
title(['Sheet # ' num2str(jj)])
hold off
end
Siehe auch
Kategorien
Find more on Spreadsheets in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!