2012-09-27 52 views
3

我繪製geom_path對象,並在同一ggplot一個geom_text對象,但我遇到了以下問題:添加geom_path和geom_text相同的ggplot生成R錯誤

#load the data frames 
df1 <- data.frame(x=c(32, 42, 52), y=c(15, 20, 25), grp=c(1, 2, 2), site=c("A", "B", "C")) 
df1$grp = factor(df1$grp) 
colnames(df1)[3] = "Group" 

df2 <- data.frame(x=c(32, 42, 52), y=c(15, 20, 25)) 

#create basic plot with site name coloured by group 
p = ggplot(df1, aes(x=x, y=y, label=site)) 
p = p + geom_text(aes(colour=factor(Group)), size=4) 
p = p + coord_fixed() 

#I try adding a path 
p = p + geom_path(data=df2, aes(x=x, y=y)) 

但得到的錯誤 錯誤在eval(expr,envir,enclos):object'site'not found

任何想法?

+2

主'ggplot'調用中的每個美學都在隨後的'geom_'中。我想我應該補充一點,解決辦法是將'label = site'移動到'geom_path'中,或者將它解除映射爲NULL。 – joran

+0

謝謝。我添加了標籤調用並且工作。也許你會評論一個答案,所以我可以接受它? – Elizabeth

回答

7

主要ggplot調用中的每種美學都會在每個後續geom_中預期。解決方法是移動label = site或將其取消映射到geom_path,方法是將其設置爲NULL

3
ggplot(df1, aes(x, y)) + 
geom_text(aes(label = site, colour = factor(Group)), size = 4) + 
coord_fixed() + geom_path(df2, aes(x, y))