我有两个数据点x
和y
:
x = 5 (value corresponding to 95%)
y = 17 (value corresponding to 102.5%)
不,我想计算xi
的值,该值应该对应100%。
x = 5 (value corresponding to 95%)
xi = ?? (value corresponding to 100%)
y = 17 (value corresponding to 102.5%)
我应该如何使用python执行此操作?
答案 0 :(得分:7)
我们可以在没有Python的图形上轻松绘制它:
这向我们展示了答案应该是什么(13)。
但我们如何计算呢?首先,我们找到了这个渐变:
代入等式的数字表示:
因此我们知道0.625我们将Y值增加,我们将X值增加1。
我们已经知道Y是100.我们知道102.5与17. 100 - 102.5 = -2.5
有关。 -2.5 / 0.625 = -4
然后17 + -4 = 13
。
这也适用于其他数字:100 - 95 = 5
,5 / 0.625 = 8
,5 + 8 = 13
。
我们也可以使用渐变的倒数(1 / m
)向后移动。
我们已经知道X是13.我们知道102.5与17. 13 - 17 = -4
有关。 -4 / 0.625 = -2.5
然后102.5 + -2.5 = 100
。
我们如何在python中执行此操作?
def findXPoint(xa,xb,ya,yb,yc):
m = (xa - xb) / (ya - yb)
xc = (yc - yb) * m + xb
return
找到给出X点的Y点:
def findYPoint(xa,xb,ya,yb,xc):
m = (ya - yb) / (xa - xb)
yc = (xc - xb) * m + yb
return yc
此功能还将从数据点推断。
答案 1 :(得分:5)
是你想要的吗?
getDOM()
答案 2 :(得分:0)
您可以使用numpy.interp函数对值进行插值
import numpy as np
import matplotlib.pyplot as plt
x = [95, 102.5]
y = [5, 17]
x_new = 100
y_new = np.interp(x_new, x, y)
print(y_new)
# 13.0
plt.plot(x, y, "og-", x_new, y_new, "or");