Ajustar uma curva ao limite de um gráfico de dispersão

Estou tentando ajustar uma curva ao limite de um gráfico de dispersão.Veja esta imagem para referência.

Já realizei um ajuste com o seguinte código (simplificado). Ele divide o quadro de dados em pequenas faixas verticais e encontra o valor mínimo nessas faixas de largurawidthignorandonans. (A função está diminuindo monotonicamente.)

def func(val):
    """ returns some function of 'val'"""
    return val * 2

for i in range(0, max_val, width)):
    _df = df[(df.val > i) & (df.val < i + width)] # vertical slice
    if np.isnan(np.min(func(_df.val)):            # ignore nans
        continue
    xs.append(i + width)                         
    ys.append(np.min(func(_df.val)))

Estou então fazendo o ajuste comscipy.optimize.curve_fit. Minha pergunta é: existe uma maneira mais natural ou pitônica de fazer isso - e existe alguma maneira de aumentar a precisão? (por exemplo, atribuindo uma ponderação mais alta às áreas do gráfico de dispersão com uma densidade de pontos mais alta?)

questionAnswers(2)

yourAnswerToTheQuestion