0

我正在向 ggplot 添加一个点,如何将 x 和 y 坐标作为变量?我试过这段代码,但它不起作用

func <- function(data){

  meanx <- mean(data[,1])
  meany <- mean(data[,2])

  p <- ggplot(data, aes(x = data[,1], y = data[,2]))
  p + 
  geom_point(size = 5, shape = 19, color = "#00FF00",
         aes(x = meanx, y = meany))

}

func(iris)

我有以下错误:

Error in eval(expr, envir, enclos) : object 'meanx' not found

任何人都可以帮助我吗?

4

3 回答 3

4

一种解决方案是更换

geom_point(size = 5, shape = 19, color = "#00FF00", aes(x = meanx, y = meany)) 

annotate("point",size = 5, shape = 19, color = "#00FF00", x = meanx, y = meany)
于 2012-11-27T20:13:40.950 回答
3

错误消息是由于数据帧meanxmeany不是数据帧的一部分,该数据帧在函数data中指定为参数的值。dataggplot

如果您将参数添加data = data.frame(meanx, meany)geom_point.

于 2012-11-27T20:25:15.710 回答
0

一种选择是使用aes_string,就像 Justing 说的那样。这正是您所要求的,使用字符串来分配美学。但是,正如 Sven 建议的那样,最好将 meanx 和 meany 放入 data.frame 中。

于 2012-11-27T20:40:51.483 回答