【发布时间】:2022-01-10 23:01:40
【问题描述】:
我有两条曲线,我想在其中找到它们的交点。数据可能如下所示:
import matplotlib.pyplot as plt
y1 = [1, 5, 9, 14, 21, 27, 42, 50]
x1 = list(range(1, len(x1) + 1))
y2 = [60, 50, 40, 34, 30, 28, 23, 19, 16, 10, 5, 3]
x2 = list(range(5, len(x2) + 5))
plt.plot(x1, y1, marker="o")
plt.plot(x2, y2, marker="o")
plt.show()
导致:
如您所见,它们不一定共享相同的 x,y 坐标,即它必须是在两对或点/点之间绘制的线之间的交点。
有什么办法可以做到吗?
【问题讨论】:
-
将您的问题拆分为两个子问题 (1) 首先,确定有问题的两对点。 (2) 找到两对点定义的两条线的交点。
-
或者您可以手动进行。当您在 pycharm 中绘图时(例如),它会打开一个窗口,您可以在其中看到光标的坐标
-
这与 Matplotlib 无关。
-
@stef 在How to find the exact intersection of a curve (as np.array) with y==0?的第一个答案的末尾添加了一个示例如何使用相同的代码找到两条曲线之间的交点(但需要共享它们的x值;@ 987654327@ 可用于将两条曲线放在一个共同的 x 轴上)。
标签: python