title: Interpolate without having negative values in python
body: <p>I've been trying to create a smooth line from these values but I can't have negative values in my result. So far all the methods I tried do give negative values. Would love some help.</p>
  
  <pre><code>import matplotlib.pyplot as plt
  from scipy.interpolate import UnivariateSpline
  import numpy as np
  y = np.asarray([0,5,80,10,1,10,40,30,80,5,0])
  x = np.arange(len(y))
  
  plt.plot(x, y, 'r', ms=5)
  spl = UnivariateSpline(x, y)
  xs = np.linspace(0,len(y)-1, 1000)
  spl.set_smoothing_factor(2)
  
  plt.plot(xs, spl(xs), 'g', lw=3)
  plt.show()
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/RY5hW.png" rel="noreferrer"><img src="https://i.stack.imgur.com/RY5hW.png" alt="enter image description here"></a></p>