Changing subplot axis label using subplot handle
136 views (last 30 days)
Show older comments
I have a figure with 2 subplots, and I'd like to set the axis labels. I have assigned the handles P1 and P2 to the two subplots, e.g.
P1 = subplot(2,1,1);
P2 = subplot(2,1,2);
After plotting my data, I can do things like:
set(P1, 'YLim', [0 2])
but when I try changing the xlabel,
set(P1, 'Xlabel', 'This is the X label')
I get an error:
??? Error using ==> set Value must be a handle
I've tried changing case 'xlabel' and a few other things, but the documentation wasn't any help. Any ideas?
0 Comments
Accepted Answer
Geoff
on 16 Apr 2012
That's because the value for 'XLabel' is actually a handle to another object. To see its properties, do this:
get( get(P1,'XLabel') );
Now, there's a property in there called 'String'. You should do this:
set( get(P1,'XLabel'), 'String', 'This is the X label' );
More Answers (2)
Image Analyst
on 16 Apr 2012
Earl, there is a function called xlabel() and it takes a handle.
xlabel(P1, 'This is the X Label');
I believe this is the preferred, simpler way. If you set it right after you call subplot, then you don't even need to pass in the axes
suplot(1,2,1);
plot(x,y);
xlabel('X axis #1', 'FontSize', 20);
suplot(1,2,2);
plot(x,y);
xlabel('X axis #2', 'FontSize', 14);
Nguyen Thien An
on 23 Dec 2019
This syntax work with me:
ax = subplot (2,2,1)
ax.XLabel.String = 'This is your label';
0 Comments
See Also
Categories
Find more on Axis Labels in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!