Error in legends of subplots using a for loop

2 views (last 30 days)
Anil
Anil on 13 Jun 2024
Edited: Anil on 13 Jun 2024
I want legends g_1=fr(1), g_1=fr(2), g_1=fr(3) for each plots in each window ha(kk). I am doing some mistake in legends, but couldn't figured it out. Any suggestions please. Thanks.
[ha, pos]= tight_subplot(4,3,[.1 .15],[.13 .01],[.13 .1]);
fr=([0.1, 0.5, 1]);
[h0, h1]=size(fr);
% for jj=1:h1
for jj=1:3
for kk=1:12
lin={'--','-.',':'};
axes(ha(kk));
x=load(sprintf('frq_%d%d.dat',jj,kk));
x1(jj)=loglog(x(:,33),x(:,kk+5),'linestyle',lin{jj},'LineWidth', 2.5);
hold on
ylabel([ha(1),ha(4), ha(7),ha(10)],'\Delta\omega_{}')
xlabel([ha(10), ha(11),ha(12)],'\Delta\omega_{o}')
% legend([x1([1 2 3])],{'$g_1=fr(%d)$',jj},'Fontsize',34,'Location','northwest','Interpreter', 'latex');
legend([x1([jj])],{'\rm{"$g_1{'+fr{jj}+'}$"}'},'Fontsize',34,'Location','northwest','Interpreter', 'latex');
legend('boxoff')
end
end

Answers (1)

Shivani
Shivani on 13 Jun 2024
Hello @Anil,
Without the 'frq_%d%d.dat' files, I will not be able to recreate the plots at my end to provide an accurate solution. However, I have provided one approach to format the legend as per my understanding in the code snippet below.
legendString = sprintf('\\it{g_{1}=fr(%1.1f)}', fr(jj));
legend(x1(jj), legendString, 'FontSize', 34, 'Location', 'northwest', 'Interpreter', 'latex');
legend('boxoff')
  1 Comment
Anil
Anil on 13 Jun 2024
Edited: Anil on 13 Jun 2024
Hi Shivani,
Thanks for that.
I used
legendString =sprintf('$g_1=%f $',fr(jj));
to get g_1=0.1 , g_1=0.5 and so on, which wokrs for me. But it gets overwritten for next value of jj and doesn't show a separate legend for that. Any suggestions, please. Thanks.

Sign in to comment.

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!