假设我要标记并标记(用各自的x,y坐标)黑线曲线的最大,最小点,以及p = 0.2的2个点与黑线曲线相交。我该怎么办?
library("ggplot2")
rho <- function(theta) {theta / (1+theta^2)}
ggplot(data.frame(x=c(-6,6)), aes(x=x)) + stat_function(fun=rho2, geom="line") + ylab(expression(rho)) + xlab(expression(theta)) +
ggtitle("Autocorrelation at Lag 1 of MA(1)") +
geom_hline(yintercept=0.2, color = "blue", linetype = "dashed") +
scale_color_manual(values = c(NA, "red"))
答案 0 :(得分:0)
您可以使用optimize
函数获得最大值和最小值。
optimize(rho, c(-6,6))
$minimum
[1] -1.000002
$objective
[1] -0.5
optimize(rho, c(-6,6), maximum=TRUE)
$maximum
[1] 1.000002
$objective
[1] 0.5
您可以使用geom_point
将其添加到图形中。
MIN = optimize(rho, c(-6,6))
MAX = optimize(rho, c(-6,6), maximum=TRUE)
Points = data.frame(x=c(MIN[[1]][1], MAX[[1]][1]),
y=c(MIN[[2]][1], MAX[[2]][1]))
P1 = ggplot(data.frame(x=c(-6,6)), aes(x=x)) + stat_function(fun=rho, geom="line") + ylab(expression(rho)) + xlab(expression(theta)) +
ggtitle("Autocorrelation at Lag 1 of MA(1)") +
geom_hline(yintercept=0.2, color = "blue", linetype = "dashed") +
scale_color_manual(values = c(NA, "red"))
P1 + geom_point(data=Points, size=2, aes(x,y) )