Make Equal tick spacing in a loglog plot
18 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Thor Edvard Kristensen
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
0 comentarios
Respuesta aceptada
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
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
Más respuestas (1)
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?
0 comentarios
Ver también
Categorías
Más información sobre Axis Labels en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!