python - Plot using pandas -
i have event times in list , plot exponentially weighted moving average of them. can using following code.
import numpy np import matplotlib.pyplot plt print "code runnning" a=0.01 l = [3.0,7.0,10.0,20.0,200.0] y = np.zeros(1000) item in l: y[item]=1 s = np.zeros(1000) x = np.linspace(0,1000,1000) in xrange(1000): s[i] = a*y[i-1]+(1-a)*s[i-1] plt.plot(x, s) plt.show()
this horrible way use python however. what's right way this? possible without making these sparse arrays?
the output should this.
pandas comes mind task:
import pandas pd l = [3.0,7.0,10.0,20.0,200.0] s = pd.series(np.ones_like(l), index=l) y = s.reindex(range(1000), fill_value=0) pd.ewma(y, 199).plot()
the period 199 related parameter alpha 0.01 n=2/(a+1)
. result:
Comments
Post a Comment