R:找到两条线的交点

我有创建3个矩阵并将其绘制的简单代码:

Y=matrix(c(1,2,3,4), nrow=1)
X1=matrix(c(2,3,3.5,4.5))
X2=matrix(c(0.1, 0.2, 0.6, 1.1), nrow=1)
#Plotting
plot(X1, Y)+lines(X1,Y)
par(new=TRUE)
plot(X2, Y)+lines(X2,Y) + abline(v=0.4, col="red")

这是情节: 在此处输入图片说明

现在,我想让X0.4获取所有Y值。Y值是红线与其他两条线交叉的值。因此,应该有两个值,一个值Y1用于一条线,另一个Y2值用于另一条线。

可能有什么功能可以用来执行此操作吗?我真的很感激任何建议如何做到这一点。

G5W

因为两个图使用不同的x比例,所以这是一个很奇怪的问题。获得X2线的交叉点很容易,但是X1线要复杂一些。

## X2 line
AF2 = approxfun(X2, Y)
AF2(0.4)
[1] 2.5

X1线的问题是图形上的0.4表示仅X2 = 0.4,但X1!= 0.4。您可以看到0.4标记位于X1 = 2.5和X1 = 3之间的一半,因此我们需要使用X1 = 2.75计算该值。

AF1 = approxfun(X1, Y)
AF1(2.75)
[1] 1.75

用图确认:

#Plotting
plot(X1, Y)+lines(X1,Y) + abline(v=0.4, col="red")
par(new=TRUE)
plot(X2, Y)+lines(X2,Y) 
abline(v=0.4)
points(c(0.4,0.4), c(1.75, 2.5), pch=20, col="red")

疯狂图

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章