Logarithmic scale with a different base
25 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I am trying to plot a function using logaritmic scale on the x axis, with base 2.
my code is:
N = 1:10000;
M = 61;
L = N-M+1;
ova_complex = ((N.*(log2(N)+1))./(N-M+1));
figure
stem(log2(N),ova_complex)
xlim([6 14])
the graph im getting is good, but i want to show only the integer values on the x axis(i.e. 6,7,8,9)
is there a way to do that?
thanks
0 comentarios
Respuestas (4)
Star Strider
el 13 de Ag. de 2020
Try this:
N = 1:10000;
M = 61;
L = N-M+1;
ova_complex = ((N.*(log2(N)+1))./(N-M+1));
figure
stem(log2(N),ova_complex)
xlim([6 14])
xt = get(gca, 'XTick'); % ADD THIS LINE
xtl = fix(min(xt)):fix(max(xt)); % ADD THIS LINE
set(gca, 'XTick',xtl) % ADD THIS LINE
That should produce integer ticks and integer tick labels.
.
0 comentarios
hosein Javan
el 13 de Ag. de 2020
add the following after plot
ax = gca; % current axe
ax.XTick = 6:14;
0 comentarios
Walter Roberson
el 13 de Ag. de 2020
log2(x) = log(x) *log(2)
log(2) is a uniform scaling and since plots are scaled to fit available space, becomes irrelevant.
So you get the same shape if you use semilogx. And you can lie with the labels if you want. However if you are using datatips you need your approach (unless you program them to lie)
You can use xticks() to choose integer tick locations.
0 comentarios
Joshua Carmichael
el 13 de Ag. de 2021
For a natural log base, try:
logspace(0, log10(exp(1)),100)
To generate a spaced set of 100 samples that start at one and terminate at e^(1).
0 comentarios
Ver también
Categorías
Más información sobre Annotations 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!