I am trying to plot a line in matplotlib.. I am searching for the right type of interpolation.. I want something like this

where every line is smoothed. I tried several combination of scipy and matplotlib, such as
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)
but the best result I get is

The line represents an increasing variable.. so it is a wrong representation. What can I search for?
Thanks
Edit: I am thinking about implementing a method from myself, but I don’t know if it has been already done.. pseudo code is the following
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)
For that type of graph, you want monotonic interpolation. The
PchipInterpolatorclass (which you can refer to by its shorter aliaspchip) in scipy.interpolate can be used:Result: