将geom_path和geom_text添加到同一个ggplot会在r中生成错误

时间:2012-09-27 20:36:47

标签: r ggplot2

我正在同一个ggplot中绘制geom_path对象和geom_text对象,但遇到了以下问题:

#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)出错:找不到对象'site'

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

主要ggplot调用中的每个美学都会在随后的每个geom_中出现。解决方案是移动label = site或在geom_path中取消映射,方法是将其设置为NULL

答案 1 :(得分:3)

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