Rotate annotation textbox

25 Ansichten (letzte 30 Tage)
Pablo
Pablo am 13 Jan. 2012
Bearbeitet: the cyclist am 12 Jul. 2025
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

Akzeptierte Antwort

the cyclist
the cyclist am 13 Jan. 2012
Bearbeitet: the cyclist am 12 Jul. 2025
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.
  1 Kommentar
Pablo
Pablo am 13 Jan. 2012
It works! =D
Thanks a lot

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Nina
Nina am 10 Jul. 2025
Bearbeitet: Nina am 10 Jul. 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