2017-04-26 83 views
0

我有2个离散坐标,X和Y.我打电话plt.plot(X,Y)并得到好的绘图。不是我想从该图(函数图)中获取X的值(X不包含在文件中)。比如我有X=[1,2,3,4] Y=[0.4,0.5, 0.8, 0.85]如何获得价值XY = 0.43 ?如何在python中绘制函数值

+1

偏移找到该值你不得不插值(如你的情节例行已经这样做了。线性)。考虑[numpy.interp](https://docs.scipy.org/doc/numpy/reference/generated/numpy.interp.html) –

+0

你需要更具体 - 你指定的值不是线性的,所以你的要根据线性拟合,多项式拟合,梯形拟合或其他方法返回Y.另外,请展示您的尝试,以便我们更容易地为您提供帮助。 – jolindbe

+0

我需要做梯形拟合 –

回答

2

随着numpy的:

import numpy as np 

X=[1,2,3,4] 
Y=[0.4 ,0.5, 0.8, 0.85] 

y = .43 
x = np.interp(y, Y, X) 

没有numpy的:

X=[1,2,3,4] 
Y=[0.4, 0.5, 0.8, 0.85] 

y = .43 

for i, yi in enumerate(Y): 
    if y < yi: 
     break 

k = (X[i] - X[i-1])/(Y[i] - Y[i-1]) 
m = X[i-1] 

x = k*(y-Y[i-1])+m 

注意,该函数y = f(x)的有为了可逆(确定),并且y必须在Y的范围内才能工作,因为我没有添加任何边界检查。

我要做的,就是我计算感兴趣区域的斜率,然后使用在从Y[i-1]

+0

谢谢大家,iterp正在工作。 –