Stacked plots: display two variables on the same x-axis

48 次查看(过去 30 天)
Hello everyone,
I am trying to make a stacked plot of multiple variables, with the middle plot having two y-axes (please refer to the picture for clarification). I am having trouble setting the second y-axis on the right side and "VPD" is showing as a straight line since its values are much smaller than "PAR". The "VPD" is planned to be plotted as a bar plot. Here is the code that I am using:
T_Variables = table(date,Ta, PAR, VPD, REW, Ts_5cm, 'VariableNames' , {'Date' 'Ta','PAR','VPD','REW','Ts'});
TT_Variables = table2timetable(T_Variables);
TT_Variables_Monthly = retime(TT_Variables, 'monthly' , 'mean');
degreeSymbol = char(176);
newYlabels = ["Ta (" + degreeSymbol + "C)","PAR (umol/m2/s)","REW"];
Vars = {'Ta',{'PAR','VPD'},'REW'};
c = stackedplot(TT_Variables_Monthly,Vars,"Title","Stacked Plot","DisplayLabels",newYlabels);

采纳的回答

Voss
Voss 2022-6-18
You can use subplot/tiledlayout with yyaxis, and then set the relevant axes properties to make the display more like what you get with stackedplot.
% using subplot:
ax = [ ...
subplot(3,1,1) ...
subplot(3,1,2) ...
subplot(3,1,3) ...
];
% using tiledlayout:
% t = tiledlayout(3,1);
% ax = [ ...
% nexttile(t) ...
% nexttile(t) ...
% nexttile(t) ...
% ];
% the code below works the same whether
% using subplot or tiledlayout:
plot(ax(1),rand(1,50))
yyaxis(ax(2),'left')
plot(ax(2),100*cos(1:75))
yyaxis(ax(2),'right')
plot(ax(2),sin(1:85))
plot(ax(3),rand(1,100))
linkaxes(ax,'x')
set(ax,'Box','off')
xax = get(ax(1:2),'XAxis');
set([xax{:}],'Visible','off')
yax = get(ax(2),'YAxis');
set(yax(1),'Color','k')

更多回答(1 个)

Peter Perkins
Peter Perkins 2022-6-13
Farbod, IIUC, you cannot do that with stackedplot. Each subplot can have only one y axis. The whole point of stackedplot is to align multiple variables along their time axis, but for them to have separate y axes so the scaling doesn't cause the very issue you are running into. I suggest you let stackedplot make four subplots.

类别

Help CenterFile Exchange 中查找有关 Line Plots 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by