how to set y-axis as log scale?
6.299 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Rohit Bhoi
el 15 de Abr. de 2016
Comentada: Mr Thadi
el 29 de Sept. de 2024
I am plotting x-y plot using plot function. I want to set only y-axis as log scale and x-axis as linear? How to do that? I used loglog function but it scales both axis but I want only Y.
0 comentarios
Respuesta aceptada
Walter Roberson
el 22 de Sept. de 2023
Editada: MathWorks Support Team
el 22 de Sept. de 2023
The best way to create that type of axes is to use the semilogy function. Alternatively, you can set the ‘YScale’ property on the axes:
set(gca, 'YScale', 'log')
***Update from Mathworks Support Team - September 2023***
As of R2023b, you can also use the 'yscale ' function.
23 comentarios
Adam Danz
el 12 de Jul. de 2024
This issue arises because the first bin edge is at x=0 and log(0)=-inf which cannot be represented graphically.
Assuming there are no data less than or equal to 0 and no bin edges less than 0, you could set the first bin edge according to the smallest value in the data.
x = rand(1,1000)*10000;
minPositiveValue = min(x(x>0),[],'all');
minbin = 10^floor(log10(minPositiveValue));
ax = axes();
h = histogram(ax, x);
ax.XScale = 'log';
if h.BinEdges(1) == 0
h.BinEdges(1) = minbin;
end
Más respuestas (2)
Rohit Sinha
el 27 de Abr. de 2022
The easiest way to do this is simply use the following command instead of plot
semilogy(x,y);
This will plot x axis on a linear scale and y axis on a log scale. Similarly, if you want to plot x axis on log scale and y axis on a linear scale, you can use
semilogx(x,y) ;
2 comentarios
Walter Roberson
el 27 de Abr. de 2022
semilogy() is the first thing I mentioned in my answer in 2016.
Nicholas Santiago
el 4 de Nov. de 2022
yo i totally missed that I generally only read the bold stuff, thanks a ton!
Ver también
Categorías
Más información sobre 2-D and 3-D Plots 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!