2012-11-27 51 views
0

我正在爲ggplot添加一個點,我如何將x和y座標作爲變量?我想這個代碼,但它不工作如何在將點添加到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

看看'aes_string' – Justin

回答

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) 
+0

是的,它的工作原理!非常感謝! – Autumn

3

該錯誤消息是由於meanxmeany不是被指定爲參數的值的數據幀data的一部分dataggplot函數中。

如果將參數data = data.frame(meanx, meany)添加到geom_point,它將起作用。

0

一個選項是使用aes_string,就像Justing說的那樣。這正是你所要求的,使用一個字符串來賦予美感。但是,正如斯文所建議的那樣,最好只是將數字和數字放入數據框中。

+0

我明白了,謝謝! – Autumn

相關問題