簡體   English   中英

如何從ggplot2圖例中刪除美學

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM