giroy
giroy

Reputation: 2243

How to make a log plot in matlab

Is it possible to make a plot in matlab that does not actually take the logs of the values? I'm plotting wide ranges of values and when I try to make a log plot of them, those below 1 become negative. I would just like it to plot the values on a log scale without taking their logs.

Upvotes: 10

Views: 76601

Answers (3)

Larry Wang
Larry Wang

Reputation: 1006

Yes, it is possible. Use the loglog command.

The example from the Mathworks website:

x = logspace(-1,2);   % generate a sequence of points equally spaced logarithmically
loglog(x,exp(x),'-s')
grid on

enter image description here

If you do not want both axes to be log scale, use semilogx or semilogy.

Upvotes: 16

Matt Mizumi
Matt Mizumi

Reputation: 1193

Alternatively, set(gca,'XScale','log') if you have your plot already.

Upvotes: 22

ysap
ysap

Reputation: 8115

So, you want to plot liner data on logarithmic axes? You can exponentiate you values before using the log plot. This way the point p=(10,3) will plot at the x=10 position.

Upvotes: 1

Related Questions