MATLAB: Display negative values on logarithmic graph

log two yxis

Hi, I want to plot a set of data where the values oscillates around 0 but the amplitude decays exponentially. It is normally plotted with two different logarithmic yaxis on top of each other. With the lower one in reverse order. Can that be done in Matlab?

Best Answer

Plot the logarithm of the absolute value of y multiplied by sign of y, and the change labels:
x = linspace(0,3,10000);
y = 1e6*exp(-x).*(sin(10*x)-0.5);
plot(x,y)
figure
Y = sign(y).*log10(abs(y));
plot(x,Y,'.')
yl = get(gca,'ytick');
set(gca,'yticklabel',sign(yl).*10.^abs(yl))