繁体   English   中英

如何使用线A的相应x坐标在B线上找到y坐标

[英]How to find y coordinate on line B with respective x coordinate of line A

我在 python 中使用matplotlib在图形上有两条线

A线

A_X = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
A_Y = [33300.0, 32887.6, 33046.4, 33140.9, 32967.8, 32960.0, 33128.95, 33376.95, 33300.0, 33080.0]

线B具有来自线A第一个和最后一个点,以在这些点之间绘制直线。

B_X = [11, 20]
B_Y = [33300.0, 33080.0]

所以现在我想找到 B_X 12 到 B_X 19 x坐标的所有y参考坐标。
基本上从下图中我想找到red点的坐标。 预先感谢您的巨大帮助。

A&B线

对 scipy 模块使用线性插值:

from scipy.interpolate import interp1d

f = interp1d(B_X, B_Y)

要获取红点的 y 值,请使用

f(A_X)

红点的坐标将为 (A_X, f(A_X))

您应该使用interp1d创建一个插值函数:

line = interp1d(B_X, B_Y)

然后选择要用于插值的 X 点并对其调用插值函数:

B_X_points = np.arange(B_X[0], B_X[-1] + 1, 1)
B_Y_points = line(B_X_points)

全码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d

A_X = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
A_Y = [33300.0, 32887.6, 33046.4, 33140.9, 32967.8, 32960.0, 33128.95, 33376.95, 33300.0, 33080.0]

B_X = [11, 20]
B_Y = [33300.0, 33080.0]

line = interp1d(B_X, B_Y)
B_X_points = np.arange(B_X[0], B_X[-1] + 1, 1)
B_Y_points = line(B_X_points)

fig, ax = plt.subplots()

ax.plot(A_X, A_Y)
ax.plot(B_X_points, B_Y_points, marker = 's', markerfacecolor = 'r')

plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM