【发布时间】:2020-07-08 09:24:25
【问题描述】:
我有一个包含 x 和 y 的文件。对于从 y 轴通过的每条线,我可以找到交点,但我希望有一种自动方法来找到从 y 轴通过的一堆线的交点,如下图所示:
我为逐个查找交叉点而编写的代码如下:
import numpy as np
import matplotlib.pyplot as plt
with open('txtfile1.out', 'r') as f:
lines = f.readlines()
x = [float(line.split()[0]) for line in lines]
y = [float(line.split()[1]) for line in lines]
xx = []
for i in range(1,len(x)):
if (y[i] > 0 and y[i-1] < 0) or (y[i] < 0 and y[i-1] > 0):
xx.append((x[i]+x[i-1])/2)
yx = [0 for _ in range(len(xx))]
plt.plot(x,y)
plt.plot(xx,yx, color="C2", marker="o", ls="", ms=10)
我拥有的东西
【问题讨论】:
-
两个数字相同
-
@TimStack 是的,但是在其中一个中,我需要有实线与多条直线虚线的交点,而我可以编写代码以逐个获取交点。
-
@TimStack 现在你可以看到不同之处了,你上传的图片是对的
-
你知道直线的y值吗?它们总是一样吗?它们是否存储在另一个文件中?在已经存在的循环中添加第二个 for 循环可能是一种解决方案。
-
@TobiasBrösamle 可以根据我的情况任意定义作为直线虚线的 y 值。但我想过用这种方式来定义它们
divider = np.arange(min(y),max(y),100)
标签: python numpy matplotlib