How can I align text to the ylabel in a plot?
21 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (2)
Star Strider
il 15 Ago 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 Commenti
Matt J
il 15 Ago 2021
Modificato: Matt J
il 15 Ago 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 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!