Make Equal tick spacing in a loglog plot

8 visualizaciones (últimos 30 días)
Thor Edvard Kristensen
Thor Edvard Kristensen el 30 de Dic. de 2021
Editada: Dave B el 30 de Dic. de 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

Respuesta aceptada

Dave B
Dave B el 30 de Dic. de 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 comentarios
Thor Edvard Kristensen
Thor Edvard Kristensen el 30 de Dic. de 2021
Is it possible to make it look like this? the first picture i showed?
Dave B
Dave B el 30 de Dic. de 2021
Editada: Dave B el 30 de Dic. de 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

Iniciar sesión para comentar.

Más respuestas (1)

the cyclist
the cyclist el 30 de Dic. de 2021
Editada: the cyclist el 30 de Dic. de 2021
I am not certain that I understand what you mean, but maybe you want the semilogx function rather than loglog?

Categorías

Más información sobre Grid Lines, Tick Values, and Labels en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by