How can I set x ticks for every curve in the subplot, legend for every curve and a title for the whole figure?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Haitham AL Satai
le 7 Oct 2022
Commenté : Les Beckham
le 7 Oct 2022
I have the following figure with 12 curves superimposed on each other, as shown below.
I want to draw each curve alone with a subplot as shown below
I would like to put for every curve legend from the ones in the first figure (i.e., the first curve 5, the second one 10, ..., till 60) and x ticks like the one in the first figure (16, 32, ..., 1024) and title for the whole figure.
My try below:
Q = [16,32,64,128,256,512,1024];
VEC_Beam_5 = [113.2659 69.7204 51.8739 34.5033 21.6538 10.9459 5.9488]; % Coverage area of Theta = 5
VEC_Beam_10 = [117.5491 76.1452 53.3016 38.3105 23.0815 13.5634 6.9007]; % Coverage area of Theta = 10
VEC_Beam_15 = [117.5491 76.1452 53.3016 38.3105 23.0815 13.5634 6.9007]; % Coverage area of Theta = 15
VEC_Beam_20 = [117.7870 76.1452 53.3016 38.5485 23.0815 13.5634 6.9007]; % Coverage area of Theta = 20
VEC_Beam_25 = [117.7870 76.6211 54.2534 38.5485 23.0815 13.5634 6.9007]; % Coverage area of Theta = 25
VEC_Beam_30 = [117.7870 76.6211 54.2534 38.5485 23.0815 13.5634 6.9007]; % Coverage area of Theta = 30
VEC_Beam_35 = [117.7870 76.6211 54.2534 38.5485 23.0815 13.5634 6.9007]; % Coverage area of Theta = 35
VEC_Beam_40 = [117.7870 76.6211 54.2534 38.5485 23.0815 13.5634 6.9007]; % Coverage area of Theta = 40
VEC_Beam_45 = [117.7870 76.6211 54.2534 38.7864 23.0815 13.5634 6.9007]; % Coverage area of Theta = 45
VEC_Beam_50 = [117.7870 76.6211 54.2534 38.7864 23.0815 13.5634 6.9007]; % Coverage area of Theta = 50
VEC_Beam_55 = [117.7870 76.6211 54.2534 38.7864 23.0815 13.5634 6.9007]; % Coverage area of Theta = 55
VEC_Beam_60 = [117.7870 76.6211 54.2534 38.7864 23.0815 13.5634 6.9007]; % Coverage area of Theta = 60
VEC_Beam = [VEC_Beam_5;VEC_Beam_10;VEC_Beam_15;VEC_Beam_20;VEC_Beam_25;VEC_Beam_30;VEC_Beam_35;VEC_Beam_40;VEC_Beam_45;VEC_Beam_50;VEC_Beam_55;VEC_Beam_60];
figure
cmap = jet(12);
hold on
for k = 1:12
plot(log2(Q),VEC_Beam(k,:), 'Color', cmap(k, :),'LineWidth',2, 'Marker','O');
end
hold off
xticks(log2(Q))
xticklabels(string(Q))
xlabel('Q');
ylabel('Coverage area');
title('Beam');
legstr= "\theta_1_/_2 = "+(5:5:60)+"°";
legend(legstr)
grid on;
figure
cmap = jet(12);
hold on
for k1 = 1:12
subplot(2,6,k1)
plot(log2(Q),VEC_Beam(k1,:), 'Color', cmap(k1, :),'LineWidth',2, 'Marker','O');
xticks(log2(Q))
xlabel('Q');
ylabel('Coverage area');
grid on;
legstr= "\theta_1_/_2 = "+(5)+"°";
legend(legstr)
end
0 commentaires
Réponse acceptée
Les Beckham
le 7 Oct 2022
Modifié(e) : Les Beckham
le 7 Oct 2022
It looks like it works just fine except for the legend.
Instead of
legstr= "\theta_1_/_2 = "+(5)+"°";
try this
legstr= "\theta_1_/_2 = " + (5 + 5*(k1-1)) + "°";
With that change I get this figure
As far as adding a title for the entire figure, I'm not sure how to do that unless you change to using tiledlayout instead of subplots. If you do that, you pass the handle to the tiledlayout to the title function.
2 commentaires
Les Beckham
le 7 Oct 2022
You are quite welcome. I had forgotten about sgtitle. Thanks for the reminder.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Title 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!