Jak narysować linię (łańcuch wielokątny) za pomocą numpy / scipy / matplotlib przy minimalnym wygładzeniu

Próbuję narysować linię w matplotlib .. Szukam odpowiedniego typu interpolacji .. Chcę coś takiego

gdzie każda linia jest wygładzona. Próbowałem kilku kombinacji scipy i matplotlib, takich jak

x_new = np.arange(x, x_length, 1)
tck = interpolate.splrep(x, y, s=3)
y_new = interpolate.splev(x_new, tck, der=0)
ax.plot(x_new, y_new, color+lstyle)

ale najlepszy wynik, jaki otrzymuję, to

Linia reprezentujezmienna rosnąca.. więc jest to niewłaściwa reprezentacja. Czego mogę szukać?

Dzięki

Edytuj: Myślę o wdrożeniu metody od siebie, ale nie wiem, czy została już wykonana. Pseudo kod jest następujący

take x and y
calculate spline for each three points 
x[0], x[1], x[2] ... x[1], x[2], x[3] ... and so on
for each y[n] sums every computation done for it and divide by number of 
computations (i.e. y[1] is computed for triplette x[0..2] and x[1..3] so the 
sum is divided by two (average for each point is taken as its value)

questionAnswers(5)

yourAnswerToTheQuestion