How can I align text to the ylabel in a plot?
20 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(2 个)
Star Strider
2021-8-15
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 个评论
Matt J
2021-8-15
编辑:Matt J
2021-8-15
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!