From: John H. <jd...@gm...> - 2009-07-19 13:43:22
|
On Fri, Jul 17, 2009 at 5:15 PM, Paul Ray<Pau...@nr...> wrote: > > > Ryan Krauss-2 wrote: >> >> RTFM: >> >> plot(t,y, drawstyle='steps-post') >> >> > > Actually, 'steps-pre' (which is the default) and 'steps-post' seem to have > swapped definitions. > Here is what the docs say: > *where*: [ 'pre' | 'post' | 'mid' ] > If 'pre', the interval from x[i] to x[i+1] has level y[i] > If 'post', that interval has level y[i+1] > If 'mid', the jumps in *y* occur half-way between the > *x*-values. > > In fact both the default behavior and what you get with steps-pre are what > SHOULD happen with steps-post. And steps-post (as you point out) does what > should be the default behavior and that of steps-pre. > > I have filed a bug report on this, since it is very important that this work > as expected. As the original poster pointed out, this used to work > correctly but recently seems to have gotten broken. I am looking first at the behavior of plot with the drawstyle property set -- let's make sure this is correct before turning to the steps command, which just uses plot with the drawstyle set -- here is my test code import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) a = np.array([1,2,3,4,5]) styles = 'default' , 'steps' , 'steps-pre' , 'steps-mid' , 'steps-post' styles = 'steps' , 'steps-pre' for ls in styles: ax.plot(a, ls=ls, label=ls, lw=2) ax.legend(loc='upper left') plt.show() pre causes the step to rise on the x[i], post causes it to rise on x[i+1] and mid in the middle. This seems like the correct behavior. So it does look like the docstring for 'step' is incorrect, and I've changed it to read *where*: [ 'pre' | 'post' | 'mid' ] If 'pre', the interval from x[i] to x[i+1] has level y[i+1] If 'post', that interval has level y[i] If 'mid', the jumps in *y* occur half-way between the JDH |