views:

222

answers:

3

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.

A: 

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.

ysap
+4  A: 

Yes, it is possible. Use the loglog command.

The example from the Mathworks website:

x = logspace(-1,2);
loglog(x,exp(x),'-s')
grid on

alt text

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

Larry Wang
+1  A: 

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

Matt Mizumi

related questions