How can I align text to the ylabel in a plot?
20 views (last 30 days)
Show older comments
I would like to add text to a plot, in such a way that it maintains a fixed position relative to the ylabel. I tried with this code, but the text is not centered with respect to the label, and their relative position changes if I resize the figure (which I wouldn't want). Is there a way to do this?
figure
plot(1,1)
yh = ylabel('label')
set(yh,'Units','Normalized');
ylabPos = get(yh,'Position');
text(ylabPos(1),1,'text', 'Units','Normalized', 'HorizontalAlignment','center')
Alternatively, I could solve it by adding a second ylabel on the same axis, but I haven't found a way to do that either...
Thank you!
0 Comments
Answers (2)
Star Strider
on 15 Aug 2021
One approach —
figure
plot(1,1)
yh = ylabel('label');
set(yh,'Units','Normalized');
ylabPos = get(yh,'Position');
text(ylabPos(1),ylabPos(2),'text', 'Units','Normalized', 'HorizontalAlignment','center', 'Vert','top', 'Rotation',90)
If you want it above (to the left of) the ylabel, that would require re-defining ‘ylabPos(1)’.
.
0 Comments
Matt J
on 15 Aug 2021
Edited: Matt J
on 15 Aug 2021
figure
plot(1,1)
yh = ylabel('label');
set(yh,'Units','Normalized','HorizontalAlignment','center','VerticalAlignment','middle');
ylabPos = get(yh,'Position');
delete(yh);
text(ylabPos(1),ylabPos(2),'label', 'Units','Normalized', 'HorizontalAlignment',...
'center','VerticalAlignment','middle','Rotation',90)
text(ylabPos(1),1,'text', 'Units','Normalized', 'HorizontalAlignment','center','VerticalAlignment','middle')
2 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!