如何在向ggplot添加点时将x和y坐标作为变量?

时间:2012-11-27 20:01:28

标签: r ggplot2

我在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

有人可以帮我吗?

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:3)

错误消息是由于meanxmeany不属于数据框data的一部分,数据框data被指定为{{1}中参数ggplot的值功能。

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

,它将起作用

答案 2 :(得分:0)

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