Как удалить эстетику из легенды ggplot2 - PullRequest
16 голосов
/ 24 марта 2011

Я ищу способ скрыть одну из эстетических легенд от сюжета, созданного с помощью кода ниже.Чтобы масштабировать цвет точки по дате, мне пришлось преобразовать даты в числа, и я бы не стал показывать легенду о дате на графике.С другой стороны, легенда формы является важной информацией для отображения.Я понимаю, что 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 Ответ

10 голосов
/ 24 марта 2011

Вы можете подавить легенды на уровне слоя.Если вы перенесете эстетику цвета с первоначального вызова на 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...