Plot line in subplot removes axes title

2 次查看(过去 30 天)
Hi everyone,
I'm having an issue regarding plot and subplot commands. I created a figure ( figure graphic object) as follows:
f = figure;
Then I created a subplot ( axes graphic object), assigned a title to it and placed it in the figure like this:
a = subplot(2,1,1, 'Parent',f)
a.Title.String = 'This is a subplot'
Finally I created a dummy plot and tried to display it in subplot "a" as follows
p = plot(a,1:10,1:10:100)
However, the behavior was not as I expected. The plot is correctly displayed in the "a" subplot axes but the title I assigned to "a" was removed.
I'd like to know why is this happening. Thanks in advance.

采纳的回答

Adam
Adam 2017-7-5
编辑:Adam 2017-7-5
Functions like plot have side effects, one of which is to clear the title. Just change the order:
p = plot(a,1:10,1:10:100);
a.Title.String = 'This is a subplot';
Well, technically, it is not the plot function that has this effect, it is the axes property
'NextPlot'
which defaults to
'Replace'
and when it is set to 'replace' the next instruction to plot (or imagesc or anything that plots onto the axes) will not only remove existing plots but will also reset all axes properties except position and units (this is in the help for Axes Properties under 'Next Plot', but is not obvious from the help of 'plot' itself).
  2 个评论
Lask
Lask 2017-7-5
编辑:Lask 2017-7-5
Really helpful, Adam. Just changed 'NexPlot' property of my axes to 'add' and everything worked as I wanted.
Thanks so much.
Eduardo
Adam
Adam 2017-7-5
Beware though that this setting will also cause any new plots to be plotted on top of existing ones rather than replacing them, as is the default behaviour.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by