我正在同一个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'
有什么想法吗?
答案 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))