python,从一行中提取特定值

时间:2018-04-19 16:53:31

标签: python plot line

我有一个简单的问题,但我很难解决。 如何从一行中提取xy值? 例如,在这一行:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
x1 = [0.1,0.12,0.13,0.18,0.2,0.25,0.27,0.29]
y1 = [1,2,3,4,5,6,7,8]
ax.plot(x1, y1, color='lightblue',linewidth=3)

如何为不存在的x提取y1的值,例如对于x = 0.23? 并在线上用点画出它?

1 个答案:

答案 0 :(得分:4)

最简单的方法是进行简单的线性插值。

给定一个类似你的数据集,你可以使用numpy的插值功能来找到该行中的任意点。

例如,鉴于您现有的代码:

import numpy as np
x1 = [0.1,0.12,0.13,0.18,0.2,0.25,0.27,0.29]
y1 = [1,2,3,4,5,6,7,8]
x = 0.23
y = np.interp(x, x1, y1)

请参阅numpy.interp此处的文档:https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.interp.html

如果你想获得一点点发烧友,scipy.interpolate.interp1d功能有点复杂,但它提供了外推等选项,以及比线性插值更先进的线条拟合方法。请在此处查看其文档:https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html