如何从ggplot2图例中删除美学

时间:2011-03-24 17:29:31

标签: r ggplot2

我正在寻找一种方法来隐藏使用下面的代码创建的情节中的一个aestetic传说。要按日期缩放点颜色,我必须将日期转换为数字,而我宁愿不在图上显示日期图例。另一方面,形状图例是要显示的重要信息。我理解legend.position="none"将彻底删除这个图例,但这让我想到了如何传达形状背后的含义的问题。

library(ggplot2)
w<-read.table("data.txt", header=TRUE)
pt.data <- w[w$dt==min(w$dt),]
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=pt.data, 
         color="red", size=3, aes(shape=Port))
print(p)

data.txt文件包含以下行。

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

enter image description here

1 个答案:

答案 0 :(得分:10)

您可以在图层级别抑制图例。如果您将颜色审美从初始调用ggplot移动到抖动层,这似乎会产生您所追求的效果。我有点困惑,但为什么你想要根据日期颜色而不提供关于颜色含义的关键...但这是一个更值哲学的问题供你思考。

ggplot(data=w, aes(OAD,RtgValInt,shape=Port)) +
  geom_jitter(size=3, alpha=0.75, color=dt, legend = FALSE) +
  scale_colour_gradient(limits=c(min(w$dt), max(w$dt)),low="#9999FF", high="#000066") +
  geom_point(data=pt.data, color="red", size=3, aes(shape=Port))