我试图在Python中从坐标值为(x1,y1)和(x2,y2)的图形中执行线性插值。根据我的值,我将在图形as in this figure
中获得一条直线我的目标是 10 ^ 6 (x轴值)应该给我在y轴上的参数值,但是目前我正在获得不在行上的外推值。
要求的输出:OUtput needed
我尝试了以下代码
import matplotlib.pyplot as plt
import math
import numpy as np
x = np.array([1, 10000000])
y = np.array([0.65, 0.25])
BK = np.asarray(np.interp(0.7,x,y))
print("aa:",BK)
plt.xscale("log")
plt.plot(x,y)
plt.plot(1000000,BK, marker="o",markersize=10)
plt.plot([1000000,1000000,0],[0,BK,BK], "b--", linewidth=1)
plt.xlim(1, 100000000)
plt.ylim(0, 1)
plt.show()
答案 0 :(得分:0)
请注意,图表中绘制的线与数据完全无关,因为它是图表中的线,而不是数据坐标中的线。因此,该行的插值的含义为零!
如果您仍然想插入该行,则首先需要转换为日志空间:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 10000000])
y = np.array([0.65, 0.25])
xinp = 1e6
BK = np.asarray(np.interp(np.log(xinp), np.log(x), y))
print("aa:",BK)
plt.xscale("log")
plt.plot(x,y)
plt.plot(xinp, BK, marker="o",markersize=10)
plt.plot([1000000,1000000,0],[0,BK,BK], "b--", linewidth=1)
plt.xlim(1, 100000000)
plt.ylim(0, 1)
plt.show()