how to set y-axis as log scale?

7,631 views (last 30 days)
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.

Accepted Answer

Walter Roberson
Walter Roberson on 15 Apr 2016
Edited: MathWorks Support Team on 28 Nov 2018
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')
  14 Comments
Weirong Sun
Weirong Sun on 9 May 2022
good answer! It's very helpful!!!

Sign in to comment.

More Answers (3)

Rohit Sinha
Rohit Sinha on 27 Apr 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) ;
  1 Comment
Walter Roberson
Walter Roberson on 27 Apr 2022
semilogy() is the first thing I mentioned in my answer in 2016.

Sign in to comment.


Elkin Javier Cepeda Ramirez
thank you , you help me too much

Hazem Mubarak
Hazem Mubarak on 30 Dec 2019
Thanks ;)

Community Treasure Hunt

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

Start Hunting!