我在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
有人可以帮我吗?
答案 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)
错误消息是由于meanx
和meany
不属于数据框data
的一部分,数据框data
被指定为{{1}中参数ggplot
的值功能。
如果您将参数data = data.frame(meanx, meany)
添加到geom_point
。
答案 2 :(得分:0)
一种选择是使用aes_string
,就像Justing说的那样。这完全符合您的要求,使用字符串来指定美学。但是,正如Sven建议的那样,最好将meanx和meany放入data.frame中。