我正在尝试将形状美学贴图添加到现有绘图中,但我收到以下错误。有没有不同的方法来实现这一目标?如果我从函数调用中删除shape=Port
,一切都按预期工作。
p <- ggplot(data=w, aes(OAD,RtgValInt,color=dt,shape=Port)) +
geom_jitter(size=3, alpha=0.75) +
scale_colour_gradient(limits=c(min(w$dt),
max(w$dt)),
low="#9999FF", high="#000066") +
geom_point(data=data.frame(OAD=w$OAD[1],
RtgValInt=w$RtgValInt[1]),
color="red", size=3)
print(p)
Error in eval(expr, envir, enclos) : object 'Port' not found
数据框w
包含以下数据。
Date Port OAD RtgValInt dt
12/31/2010 Grp1 1.463771 1.833333 14974
12/31/2010 Grp2 1.193307 2.071429 14974
11/30/2010 Grp1 1.454115 1.833333 14943
11/30/2010 Grp2 1.127755 2.071429 14943
10/29/2010 Grp1 1.434965 2.000000 14911
10/29/2010 Grp2 1.055758 2.071429 14911
09/30/2010 Grp1 1.441773 2.000000 14882
09/30/2010 Grp2 1.077799 2.071429 14882
答案 0 :(得分:12)
由于每个图层都继承了默认的aes映射,因此在使用不同的数据集时,需要使geom_point中的形状aes无效:
p <- ggplot(data=w, aes(OAD,RtgValInt,color=dt,shape=Port)) +
geom_jitter(size=3, alpha=0.75) +
scale_colour_gradient(limits=c(min(w$dt),
max(w$dt)),
low="#9999FF", high="#000066") +
geom_point(aes(shape=NULL), data=data.frame(OAD=w$OAD[1],
RtgValInt=w$RtgValInt[1]),
color="red", size=3)