首页 > 解决方案 > 如何从趋势线中减去“y”值**numpy和pylab**

问题描述

我有一个带有趋势线的 3 点图,但我需要为特定的 y 值找到一个“x”值。这是我所拥有的:

from numpy import *
from pylab import *
x = ng
y = density
plt.scatter(x, y)
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r--")

在此处输入图像描述

x 值基本上是 DNA 浓度,而 y 值是我计算的光密度值。我需要找到密度为 19159.8 的 DNA 协合。有人可以帮我吗?

标签: pythonpython-3.xnumpymatplotlib

解决方案


的反函数y = a*x + b很简单x = (1/a)*y + (-b/a)

a, b = z
z_inv = np.array([1 / a, -b / a])
p_inv = np.poly1d(z_inv)
print(np.allclose(p_inv(p(x)), x))
# True

推荐阅读