Rotate annotation textbox

41 ビュー (過去 30 日間)
Pablo
Pablo 2012 年 1 月 13 日
編集済み: the cyclist 2025 年 7 月 12 日
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 日
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 日
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;

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by