[英]How to remove an aesthetic from a ggplot2 legend
我正在尋找一種方法來隱藏使用下面的代碼創建的情節中的一個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
您可以在圖層級別抑制圖例。 如果您將顏色審美從初始調用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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.