Alisar una figura 2-D

Tengo una serie de figuras 2D vagamente rectangulares que necesitan ser suavizadas. Un ejemplo simplificado:

fig, ax1 = plt.subplots(1,1, figsize=(3,3))
xs1 = [-0.25,  -0.625, -0.125, -1.25, -1.125, -1.25, 0.875, 1.0, 1.0, 0.5, 1.0, 0.625, -0.25]
ys1 = [1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 1.875, 1.75, 1.625, 1.5, 1.375, 1.25, 1.25]

ax1.plot(xs1, ys1)
ax1.set_ylim(0.5,2.5)
ax1.set_xlim(-2,2) ;

He intentado scipy.interpolate.RectBivariateSpline pero eso aparentemente quiere datos en todos los puntos (por ejemplo, para un mapa de calor) y scipy.interpolate.interp1d pero eso, razonablemente, quiere generar una versión suavizada 1d.

¿Cuál es un método apropiado para suavizar esto?

Editar para revisar / explicar mi objetivo un poco mejor. No necesito las líneas para pasar por todos los puntos; de hecho, preferiría que no pasen por todos los puntos, porque hay claros puntos atípicos que "deberían" promediarse con los vecinos, o algún enfoque similar. He incluido un bosquejo manual crudo del comienzo de lo que tengo en mente arriba.

Respuestas a la pregunta(3)

Su respuesta a la pregunta