Make Equal tick spacing in a loglog plot

14 vues (au cours des 30 derniers jours)
Thor Edvard Kristensen
Thor Edvard Kristensen le 30 Déc 2021
Modifié(e) : Dave B le 30 Déc 2021
Hello,
Can any of you help me with making a equal spacing of in a loglog plot. You can see on the picture below that the interval between the ticks is becoming smaller and smaller.
Is it possible to make the y-axis look the this picture with equal spacing?
Thank you

Réponse acceptée

Dave B
Dave B le 30 Déc 2021
If you want n logarithmically spaced ticks (which would appear linearly spaced on a log plot, you should just set the ticks to be logarithmically spaced. That's pretty easy with logspace:
loglog([1 100],[1 100])
nticks = 4;
yticks(logspace(0,2,nticks))
% note that this is equivalent to yticks(10.^linspace(0,2,4))
grid on
set(gca,'YMinorGrid', 'off', 'YMinorTick', 'off')
The minor ticks are a bit trickier, you can get at them by grabbing the YAxis object
figure
loglog([1 100],[1 100])
nticks = 4;
yticks(logspace(0,2,nticks))
nminorticks = 16;
ax=get(gca,'YAxis');
ax.MinorTickValues=logspace(0,2,nminorticks);
grid on
  2 commentaires
Thor Edvard Kristensen
Thor Edvard Kristensen le 30 Déc 2021
Is it possible to make it look like this? the first picture i showed?
Dave B
Dave B le 30 Déc 2021
Modifié(e) : Dave B le 30 Déc 2021
Yeah just set your ticks to the values you want - this image just shows two ticks on the x axis and two ticks on the y axis. If you want to explicitly set the tick labels to read some specific values, that's easy enough too (the 'tickformat' properties/functions don't seem to work in log plots)
loglog([1e4 5e6],[1000 100],'k')
hold on
loglog([1e4 5e6],[1000 100]*1.2,'k--')
axis tight
xticks([1e4 1e6])
yticks([100 1000])
xticklabels(["1.00E+04" "1.00E+06"])
yticklabels(["100" "1 000"])
xlabel('Life (cycles)')
ylabel({'Stress' 'range' '(MPa)'},'Rotation',0)
set(gca,'XMinorTick','off','YMinorTick','off','TickDir','out')
title('Quantile curves')
legend('1%','2%','Location','NorthEastOutside','Box','off')
box off

Connectez-vous pour commenter.

Plus de réponses (1)

the cyclist
the cyclist le 30 Déc 2021
Modifié(e) : the cyclist le 30 Déc 2021
I am not certain that I understand what you mean, but maybe you want the semilogx function rather than loglog?

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by