plotting and reversing axis in subplot
5 views (last 30 days)
Show older comments
I want to generate the same figure in four subplots ? Thanks in advance.
data=xlsread('Harangi_15_Oct2021.xlsx','All');
obs=data(:,2);
sim=data(:,3);
pcp=data(:,1);
x=[1:size(obs)]';
h1 = axes;
bar(x, pcp)
set(h1, 'Ydir', 'reverse');
set(h1, 'YAxisLocation', 'Right');
set(h1, 'Xtick', []);
set(h1, 'box','off','Color', 'None');
xlabel('Years','FontSize',12);
ylabel('Precipitation (mm/day)','FontSize',12);
legend('Precipitation');
h2 = axes;
plot(x,obs,'b'); hold on
plot(x,sim,'r'); hold on
set(h2, 'XLim', get(h1,'XLim'));
set(h2, 'box','off','Color', 'None');
set(h2, 'Xtick', []);
xticks([185:365:1827]);
xticklabels({'2005','2006', '2007','2008','2009'});
ylabel('Streamflow (mm/day)','FontSize',12);
legend('Observed','Simulated');
1 Comment
dpb
on 17 Nov 2021
We have no idea what you would want in each, sorry...
As general note, look into using tiledlayout instead of subplot
Answers (1)
Dave B
on 17 Nov 2021
I think I only see a bar and two plots. Here's some abbreviated code:
t=tiledlayout(2,2); % or you can even do t=tiledlayout('flow') and matlab will choose rows and columns!
h1 = nexttile;
bar(x, pcp)
...
h2 = nexttile;
plot(x,obs,'b');
...
h3 = nexttile;
plot(x,sim,'r');
...
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!