Compact way to plot data with relative colors and legend

3 vues (au cours des 30 derniers jours)
Sim
Sim le 12 Oct 2022
Commenté : Sim le 12 Oct 2022
Is there any way to plot data with relative colors and legend in a more compact way than this one ?
Note: to remove duplicates in the legend I have used the legendUnq function.
% Input
a = {'marathon', 1, 4;
'bank holiday', 3, 6;
'bank holiday', 2, 1;
'concert', 0, 4;
'regatta', 1, 9;
'regatta', 4, 5;
'regatta', 1, 0;
'local fair', 6, 3}
% Non-compact output (and plot)
number_of_colors = length(unique(a(:,1)));
colors = jet(number_of_colors);
[~,~,idx] = unique(a(:,1));
hold on
for i = 1 : length(a)
plot(cell2mat(a(i,2)),cell2mat(a(i,3)),'o',...
'markersize',10,...
'markerfacecolor',colors(idx(i),:),...
'markeredgecolor',colors(idx(i),:),...
'DisplayName',a{i,1});
end
legend(legendUnq())

Réponse acceptée

Davide Masiello
Davide Masiello le 12 Oct 2022
Modifié(e) : Davide Masiello le 12 Oct 2022
a = {'marathon', 1, 4;
'bank holiday', 3, 6;
'bank holiday', 2, 1;
'concert', 0, 4;
'regatta', 1, 9;
'regatta', 4, 5;
'regatta', 1, 0;
'local fair', 6, 3};
[u,v,z] = unique(a(:,1));
clrs = jet(length(u));
gscatter([a{:,2}],[a{:,3}],string(a(:,1)),clrs,'.',30)

Plus de réponses (1)

Chunru
Chunru le 12 Oct 2022
% Input
a = {'marathon', 1, 4;
'bank holiday', 3, 6;
'bank holiday', 2, 1;
'concert', 0, 4;
'regatta', 1, 9;
'regatta', 4, 5;
'regatta', 1, 0;
'local fair', 6, 3};
a = cell2table(a);
a.a1 = categorical(string(a.a1))
a = 8×3 table
a1 a2 a3 ____________ __ __ marathon 1 4 bank holiday 3 6 bank holiday 2 1 concert 0 4 regatta 1 9 regatta 4 5 regatta 1 0 local fair 6 3
% Non-compact output (and plot)
s = scatter(a,'a2','a3','filled','ColorVariable','a1');
g = categories(a.a1);
h = colorbar;
h.YTick = [1:length(g)]; h.YTickLabel = g;
  1 commentaire
Sim
Sim le 12 Oct 2022
thanks a lot @Chunru!! I would accept both answers!!!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Distribution Plots 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!

Translated by