Hi,
Is there any way to rotate an annotation textbox? I want to do something like:
h = annotation('textbox',[0.5 0.5 0.1 0.1],'String','my annotation');
set(h,'Rotate',90)
The problem is that 'Rotate' isn't an annotation textbox propertie
I tried with "text" function but doesn't help me too much (i need to place a "general ylabel" on a lot of figures with subplots (4x2)), and the text position change in every figure :(
Regards

 Réponse acceptée

the cyclist
the cyclist le 13 Jan 2012
Modifié(e) : the cyclist le 12 Juil 2025

8 votes

UPDATE: There is now a way to do this directly with annotations. See Nina's answer below.
I don't know how to do it with an annotation, but here is a way to do it with the text() function, using the XLim and YLim properties of the plots (without needing to know the ranges of the x and y data beforehand):
figure
plot(1:10)
xlim=get(gca,'XLim');
ylim=get(gca,'YLim');
ht = text(0.5*xlim(1)+0.5*xlim(2),0.6*ylim(1)+0.4*ylim(2),'My text');
set(ht,'Rotation',45)
set(ht,'FontSize',18)
In the text command, make sure that the fractions add up to 1 for both the x and y positions, and then it is easy to steer the text to where you want it, and make it consistent across figures.

Plus de réponses (1)

Nina
Nina le 10 Juil 2025
Modifié(e) : Nina le 10 Juil 2025
The textbox annotation now has (counterclockwise) rotation capabilities in degrees, for example:
x = linspace(0,1);
y = x;
plot(x,y)
h = annotation('textbox',[0.43 0.40 0.10 0.10],String="my annotation");
h.Rotation = 38;

Community Treasure Hunt

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

Start Hunting!

Translated by