Suavizando uma figura 2-D

Eu tenho várias figuras 2D vagamente retangulares que precisam ser suavizadas. Um exemplo 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) ;

Eu tentei o scipy.interpolate.RectBivariateSpline, mas que aparentemente deseja dados em todos os pontos (por exemplo, para um mapa de calor), e o scipy.interpolate.interp1d, mas que, razoavelmente, deseja gerar uma versão suavizada em 1d.

Qual é o método apropriado para suavizar isso?

Editar revisar / explicar meu objetivo um pouco melhor. Não preciso das linhas para passar por todos os pontos; de fato, eu preferiria que eles não passassem por todos os pontos, porque existem pontos claros e discrepantes que "deveriam" ser calculados com os vizinhos ou uma abordagem semelhante. Incluí um esboço bruto do início do que tenho em mente acima.

questionAnswers(3)

yourAnswerToTheQuestion