Changing subplot axis label using subplot handle

430 vues (au cours des 30 derniers jours)
Earl
Earl le 16 Avr 2012
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?

Réponse acceptée

Geoff
Geoff le 16 Avr 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' );
  1 commentaire
Earl
Earl le 16 Avr 2012
Thank you! I might have spent hours trying to work this out.

Connectez-vous pour commenter.

Plus de réponses (2)

Image Analyst
Image Analyst le 16 Avr 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);
  1 commentaire
Geoff
Geoff le 16 Avr 2012
+1: Thanks =) I didn't know that one.

Connectez-vous pour commenter.


Nguyen Thien An
Nguyen Thien An le 23 Déc 2019
This syntax work with me:
ax = subplot (2,2,1)
ax.XLabel.String = 'This is your label';

Community Treasure Hunt

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

Start Hunting!

Translated by