【问题标题】:Marking out points on graph in R在R中的图形上标出点
【发布时间】:2019-03-05 17:01:52
【问题描述】:

假设我想标记并标记(使用它们各自的 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"))

【问题讨论】:

  • “标出”是什么意思?
  • @OTStats 绘制为坐标点并带有笛卡尔值 (x, y) 标签。
  • 所以您只需要绘制本地最小值/最大值。语言的使用很重要:)

标签: r ggplot2 outliers


【解决方案1】:

您可以使用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) )

【讨论】:

  • 您好 G5W,感谢您的留言!我想知道我们是否可以将其标记出来并在图表上标记。
猜你喜欢
  • 2021-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多