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

 採用された回答

the cyclist
the cyclist 2012 年 1 月 13 日
編集済み: the cyclist 2025 年 7 月 12 日

8 投票

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 件のコメント

Pablo
Pablo 2012 年 1 月 13 日
It works! =D
Thanks a lot

サインインしてコメントする。

その他の回答 (1 件)

Nina
Nina 2025 年 7 月 10 日
編集済み: Nina 2025 年 7 月 10 日

0 投票

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;

カテゴリ

質問済み:

2012 年 1 月 13 日

編集済み:

2025 年 7 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by