我有创建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")
现在,我想让X
值0.4
获取所有Y
值。Y值是红线与其他两条线交叉的值。因此,应该有两个值,一个值Y1
用于一条线,另一个Y2
值用于另一条线。
可能有什么功能可以用来执行此操作吗?我真的很感激任何建议如何做到这一点。
因为两个图使用不同的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] 删除。
我来说两句