Issue in using splitapply to plot data
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I have an array with 14 columns. Column 3 contains groups of numbers. I would like to plot column 1 vs. column 4 for each group of column 3. I have written the following code,
G = findgroups(val(:, 3));
splitapply(@plot, val(:, 1), val(:, 4), G);
From my data, I should be getting 6 plots within the figure. But I am getting only a single plot. So what is the issue in my code?
Also how to write legend using splitapply?
Thanks.
0 commentaires
Réponse acceptée
Star Strider
le 23 Mar 2020
One approach:
D = load('val.mat');
val = D.val;
G = findgroups(val(:, 3));
figure
hold on
Y = splitapply(@(x){plot(x(:,[1 4]))}, val, G);
hold off
Another approach:
D = load('val.mat');
val = D.val;
G = findgroups(val(:, 3));
Y = splitapply(@(x){x(:,[1 4])}, val, G);
figure
hold on
for k = 1:numel(Y)
plot(Y{k})
end
hold off
grid
legend(compose('Group %d', 1:6), 'Location','eastoutside')
I prefer the second approach, however it is possible to use plot with splitapply, as the first approach demonstrates.
8 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Legend dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!