如何在Python中放置两条趋势线的方程

如何在Python中放置两条趋势线的方程,python,matplotlib,Python,Matplotlib,我在同一组条件下取了两组数据,并且取了我放在各自数据组趋势线中的数据,但是我如何显示它们的方程?我只知道如何做一个,我把它作为标题。如果有人有其他的最佳解决方案,这将是非常有帮助的。谢谢 到目前为止,我所做的就是: x1 = np.array([1,2,3,4,6,7,8,9]) y1 = np.array([0.5, 0.6, 1, 1.25, 1.5, 1.7, 1.8, 2.1]) xerr = 0.0 yerr = 0.1 x2 = np.array([1,2,3,4,6,7,8,9]

我在同一组条件下取了两组数据,并且取了我放在各自数据组趋势线中的数据,但是我如何显示它们的方程?我只知道如何做一个,我把它作为标题。如果有人有其他的最佳解决方案,这将是非常有帮助的。谢谢

到目前为止,我所做的就是:

x1 = np.array([1,2,3,4,6,7,8,9])
y1 = np.array([0.5, 0.6, 1, 1.25, 1.5, 1.7, 1.8, 2.1])
xerr = 0.0
yerr = 0.1

x2 = np.array([1,2,3,4,6,7,8,9])
y2 = np.array([2.25, 2.2, 2.4, 2.75, 2.7, 2.9, 3.2, 3.2])

z1 = np.polyfit(x1,y1,1)
p1 = np.poly1d(z1)

z2 = np.polyfit(x2,y2,1)
p2 = np.poly1d(z2)

plt.errorbar(x1,y1, xerr = xerr, yerr = yerr, fmt = 'ok')
plt.plot(x1,p1(x1), 'r--')
plt.errorbar(x2,y2, xerr = xerr, yerr = yerr, fmt = 'oc')
plt.plot(x2,p2(x2), 'b--')
plt.xlabel('x')
plt.ylabel('y')
plt.title('y1=%.6fx+%.6f'%(z1[0],z1[1]))

您可以考虑使用<代码> Syrys<代码>,例如:

from sympy import S, symbols, printing

x = symbols("x")
z1_poly = sum(S(f"{v:.2f}") * x ** i for i, v in enumerate(z1[::-1]))
z1_eq = printing.latex(z1_poly)
z2_poly = sum(S(f"{v:.2f}") * x ** i for i, v in enumerate(z2[::-1]))
z2_eq = printing.latex(z2_poly)
然后将其显示为图例(并为其指定适当的标题)

输出:


这非常有用!谢谢
plt.legend([f"${i}$" for i in (z1_eq, z2_eq)])