Use subplot command to make 3+ Vertically Stacked Plots

169 次查看(过去 30 天)
I am trying to a plot of 3-4 vertically stacked subplots showing different quantities on the y-axis, but with the same x-axis. I use subplot(2,1,1) and (2,1,2) for the first and second plot. I try but subplot(2,1,3) for the third plot, but MATLAB returns an error - "Index exceeds number of subplots." In various publications, I have seen 3+ vertically stacked plots using the same x-axis like the one below.
Is this not possible without the creation of a second figure? Also, is there a shortcut to possibly combining subplots from two separate figures to accomplish this?

采纳的回答

Star Strider
Star Strider 2016-9-17
Try this:
figure(1)
subplot(3,1,1)
plot(...)
subplot(3,1,2)
plot(...)
subplot(3,1,3)
plot(...)
  2 个评论
AmericanExpat26
AmericanExpat26 2016-9-17
Many thanks. Star Strider. In hindsight, this was a real 'duh' moment after reading the answer.
Star Strider
Star Strider 2016-9-17
My pleasure.
There are no ‘duh’ moments, only opportunities to learn more. With R2016b now available, those opportunities will increase, since the release notes promise even more functionality.

请先登录,再进行评论。

更多回答(3 个)

Gustavo
Gustavo 2016-12-8
Hi, how did you remove the space between the subplots?
  1 个评论
Alejandro
Alejandro 2017-9-11
编辑:Alejandro 2017-9-11
You select the mouse pointer icon and select a subplot, you can now move them closer using the arrow keys. It took me so long to figure that out, it is kind of annoying that there's no easy way built in matlab to programmatically do this kind of stacked plot that share the same x-axis data.

请先登录,再进行评论。


Steven Lord
Steven Lord 2019-6-14
This question was asked before this function existed, but if you're using release R2018b or later try the stackedplot function.

Habtamu Tesfaw
Habtamu Tesfaw 2019-6-14
Can't understand the accepted answer. Where is the stacking command then? please help me

Community Treasure Hunt

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

Start Hunting!

Translated by