簡體   English   中英

python,從一行中提取特定值

[英]python, extract specific values from a 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(例如x = 0.23)提取y1的值? 並在線上畫一個點?

最簡單的方法是簡單的線性插值。

給定像您一樣的數據集,您可以使用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 : numpy.interp

如果您想學一點點, scipy.interpolate.interp1d功能會稍微復雜一些,但是它提供了諸如外推之類的選項,以及比線性內插更先進的線擬合方法。 在此處查看其文檔: https : //docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM