Plot step function with y-axis in log-scale

5 Ansichten (letzte 30 Tage)
Rayne
Rayne am 9 Apr. 2016
Kommentiert: Rayne am 9 Apr. 2016
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
Azzi Abdelmalek
Azzi Abdelmalek am 9 Apr. 2016
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
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
Rayne
Rayne am 9 Apr. 2016
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

Mehr zu Log Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by