MATLAB Answers

How to loop different y-labels in different plots?

3 views (last 30 days)
I want to display 4 graphs of Impulse Response Functions (IRFs) with their confidence intervals. I would like the labels to appear in bold on the y-axis. I tried this code but it doesn't display the y-axis as plotdisplay says. Besides, when I run the code, the order of the plots doesn't reflect the order of the variables and one (the last one) isn't displayed.
plotdisplay = {'Fiscal Policy Accommodation', 'HICP', 'Real GDP', 'Policy Indicator'}
for j = 1:4
plot(VAR.irs(:,j),'LineWidth',2,'Color', [0 0 0.5]);
hold on
plot(VARbs.irsH(:,j),'LineWidth',1,'Color', [0 0 0.5],'LineStyle','--');
hold on
plot(VARbs.irsL(:,j),'LineWidth',1,'Color', [0 0 0.5],'LineStyle','--');
subplot(size(VAR.irs, 2), 1, j);
xlabel('months')
ylabel(plotdisplay(j), 'bold')
end
What is wrong in this code?
Thanks

  0 Comments

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 3 Apr 2020
Edited: Ameer Hamza on 3 Apr 2020
Change to
ylabel(plotdisplay(j), 'FontWeight', 'bold')
Also move the subplot statement above
for j = 1:4
subplot(size(VAR.irs, 2), 1, j);
plot(VAR.irs(:,j),'LineWidth',2,'Color', [0 0 0.5]);
hold on
% remaining code.
end

  6 Comments

Show 3 older comments
Ameer Hamza
Ameer Hamza on 3 Apr 2020
You can add the following line to change the dimensions of current figure
f = gcf;
f.Position(3) = f.Position(3) + 300; % increase width a little, adjust the value of 300
f.Position(4) = f.Position(4) - 100; % decrease height a little, adjust the value of 100

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!