Python 使用曲线拟合结果生成字符串的方法

Python 使用曲线拟合结果生成字符串的方法,python,python-3.x,Python,Python 3.x,我已经创建了一个类,它接受一个分布,并适合它。该方法可以在几个预定义函数之间进行选择 作为打印类的一部分,我以方程式的形式打印拟合结果,拟合结果和后续错误显示在图形的上方 我的问题是,当一个数字是负数时,是否有一种整洁的方法来处理,例如打印字符串的形式是:“y=mx-c”,而不是“y=mx+-c” 我通过线性拟合开发了这个函数,在这里我只需评估常数的符号,并通过以下两种方式之一形成字符串: def fit_result_字符串(自身、结果、错误): 如果self.fit_模型为utl.linea

我已经创建了一个类,它接受一个分布,并适合它。该方法可以在几个预定义函数之间进行选择

作为打印类的一部分,我以方程式的形式打印拟合结果,拟合结果和后续错误显示在图形的上方

我的问题是,当一个数字是负数时,是否有一种整洁的方法来处理,例如打印字符串的形式是:“y=mx-c”,而不是“y=mx+-c”

我通过线性拟合开发了这个函数,在这里我只需评估常数的符号,并通过以下两种方式之一形成字符串:

def fit_result_字符串(自身、结果、错误):
如果self.fit_模型为utl.linear:
如果结果[1]>0:
fit_str=r“y={.3}($\pm${.3})x+{.3}($\pm${.3})”(
结果[0],
错误[0],
结果[1],
错误[1])
其他:
fit_str=r“y={.3}($\pm${.3})x-{.3}($\pm${.3})”(
结果[0],
错误[0],
abs(结果[1]),
错误[1])
回归拟合
我现在想建立一个字符串,如果拟合模型更改为二次、三次或四次多项式,同时处理每个系数的符号,那么它也能够形成一个包含结果的字符串

有没有比使用一大堆if-else语句更好的方法呢


提前谢谢

定义一个函数,该函数根据给定的数字返回“+”或“-”,并在f字符串中调用它

def加减字符串(n):
如果n>=0,则返回“+”,否则返回“-”
print(f“y={m}x{plus_减号_string(c)}{abs(c)}”)
示例:

>m=2
>>>c=5
>>>print(f“y={m}x{plus_减号_string(c)}{abs(c)}”)
y=2x+5
>>>c=-4
>>>print(f“y={m}x{plus_减号_string(c)}{abs(c)}”)
y=2x-4

您需要对其进行一些修改,以适应您的代码,但我希望这是一个简单而优雅的解决方案。我知道有比我的暴力方法更好的方法。非常感谢。