python - 如何从趋势线中减去“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 协合。有人可以帮我吗?
解决方案
的反函数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
推荐阅读
- gpu - 使用 pytorch 获取可用 GPU 内存的总量
- android - 广播 FCM 消息的 ANR
- javascript - Gulp - 错误:EPERM:不允许操作,mkdir 'C:\Users\yashraj\Desktop\my-reporter\lib'
- python - 按行拆分数据帧并在python中生成数据帧列表
- c# - 如何在c#中比较表中两列的值
- php - 在 PHP 中将 HTML 有序/无序列表转换为纯文本
- swift - 无法调用非函数类型“DrawCircleSegment”的值
- uml - “事件”或“状态”的 Uml 标准
- python - 将 django 项目作为完整安装文件 (setup.exe) 交付以方便用户且不泄露整个脚本的最佳方式是什么?
- ruby-on-rails - 如何删除自动链接从 Active Admin 创建一个