【发布时间】:2021-11-13 00:02:20
【问题描述】:
我想找到两个图的交集。绘制第一张图我用了 674 分,而绘制第二张图只用了 14 分。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv("test1.csv",,skiprows=range(9),names=['A', 'B', 'C','D'])
df2 = pd.read_csv("test2.csv",skiprows=range(1),names=['X','Y'])
x1 = df['A'].tolist()
x1 = np.array(x1)
y1 = df['D'].tolist()
y1 = np.array(y1)
x2 = df2['X'].tolist()
x2 = np.array(x2)
y2 = df2['Y'].tolist()
y2 = np.array(y2)
idx = np.argwhere(np.diff(np.sign(y1 - y2))).flatten()
fig, ax = plt.subplots()
ax.plot(x1, y1, 'blue')
ax.plot(x2, y2, 'red')
plt.show()
但是,由于 numpy 的大小不同,我从上面的代码中收到此错误。有什么办法可以解决这个问题?
操作数不能与形状 (674,) (14,) 一起广播
【问题讨论】:
-
你的意思是要找到两条线相交点的坐标吗?如果是这样,那根本就不是直截了当的回答。如果图表不是数学函数,而只是由线连接的数据点,则需要对点之间的值进行插值。
-
我投票重新打开是因为:Intersection of two graphs in Python, find the x value 没有解决数组长度不同的情况,如当前问题中所述,How do I compute the intersection point of two lines? 仅解决线之间的交叉,而不是曲线。所以这个问题不是他们任何人的重复。
标签: python numpy matplotlib plot scipy