plotting and reversing axis in subplot

5 ビュー (過去 30 日間)
Anjana Ekka
Anjana Ekka 2021 年 11 月 17 日
コメント済み: Anjana Ekka 2021 年 11 月 17 日
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 件のコメント
dpb
dpb 2021 年 11 月 17 日
We have no idea what you would want in each, sorry...
As general note, look into using tiledlayout instead of subplot

サインインしてコメントする。

回答 (1 件)

Dave B
Dave B 2021 年 11 月 17 日
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');
...
  1 件のコメント
Anjana Ekka
Anjana Ekka 2021 年 11 月 17 日
Thanks Dave. I managed to solve half of the problem. I plotted x-pcp in reverse. x-y axis.
How can I plot x-obs and x-sim in x-y axis for each tile individually.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGraphics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by