Plot step function with y-axis in log-scale

Hi,
How can I plot something like this?
I can only either use semilogy to plot the graph in log scale (without step function), or plot the step function (using "stairs" function) but with the y-axis in terms of the exponential (by taking the log of the y-values first).
How do I do both?
Thank you.

2 Kommentare

The question is not clear
Rayne
Rayne am 9 Apr. 2016
Basically, I'm trying to create the type of plot in the given picture, i.e. step function on a log-scale y-axis. I could only get either a smooth curve on a log scale, or a step function on a non-log-scale. How do I do both?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 9 Apr. 2016

0 Stimmen

If you are trying to get one line to be in log y scale and another to be in linear y scale, then you should plotyy() and set one of the axes to 'yscale' 'log'
If you are having problems that somehow stairs() does not look right with semilogy, then I do not seem to reproduce that in R2014a.
But if you happen to need some code to reproduce stairs() in terms of plot(), then:
plot( [x(1),kron(x(2:end),[1 1])], [kron(y(1:end-1),[1 1]),y(end)] )

1 Kommentar

Thanks, I managed to plot it using something like
stairs(1:10, 2*(1:10));
set(gca, 'YScale', 'log')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by