ylabel changes position with ax.YAxisLocation = 'origin'
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
If I use
ax.YAxisLocation = 'origin';
the text of the ylabel changes position, going to the top of the plot and appearing horizontally, instead of being in a vertical posiyion, alongside the y-axis, as in a usual plot:
hold on
scatter(-rand(1,10),rand(1,10),120,'or','filled')
scatter(rand(1,10),rand(1,10),120,'ob','filled')
ax = gca;
ax.YAxisLocation = 'origin';
ylabel('my y-label')
How to have the ylabel in a vertical position, alongside the y-axis, as in a usual plot, when using ax.YAxisLocation = 'origin' ?
0 Commenti
Risposta accettata
Star Strider
il 24 Giu 2024
The axis labels are text objects with the same properties. (Although not all the properties, such as 'VerticalAlignment' are listed in the ylabel properties, they can still be adressed.)
Try this —
hold on
scatter(-rand(1,10),rand(1,10),120,'or','filled')
scatter(rand(1,10),rand(1,10),120,'ob','filled')
ax = gca;
ax.YAxisLocation = 'origin';
hyl = ylabel('my y-label');
% get(hyl)
pos = hyl.Position;
hyl.Position(2) = mean(ylim); % Use Original Values, Excep[t For The 'y' Coordinate
hyl.Rotation = 90; % Change 'Rotation' Value
hyl.VerticalAlignment = 'middle'; % Set Hidden 'text' Property
There are still other tweaks possible if this is not exactly what you want.
.
2 Commenti
Più risposte (1)
the cyclist
il 24 Giu 2024
Modificato: the cyclist
il 24 Giu 2024
It's a bit kludgy, but
rng default
hold on
scatter(-rand(1,10),rand(1,10),120,'or','filled')
scatter(rand(1,10),rand(1,10),120,'ob','filled')
ax = gca;
ax.YAxisLocation = 'origin';
yL = ylabel('my y-label');
set(yL,"Rotation",90)
set(yL,"Position",[-0.25 0.5 -1])
Make that first number defining the Position closer to -1, if you had wanted the label all the way off to the left.
1 Commento
Vedere anche
Categorie
Scopri di più su Graphics Object Programming in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!