Lendas-chaves diferentes dentro da mesma legenda em ggplot2

Digamos que eu não precise de um mapeamento de variáveis ​​'adequado', mas ainda gostaria de ter chaves de legenda para ajudar na compreensão do gráfico. Meus dados reais são semelhantes aos seguintes df

df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))

library(ggplot2)

ggplot(df) +
  geom_line(aes(id, line, colour = "line")) +
  geom_point(aes(id, points, colour = "points"))

Basicamente, eu gostaria que a chave da lenda relativa apoints para ser .. apenas um ponto, sem a linha no meio. Cheguei perto disso com isso:

library(reshape2)

df <- melt(df, id.vars="id")

ggplot() +
  geom_point(aes(id, value, shape = variable), df[df$variable=="points",]) +
  geom_line(aes(id, value, colour = variable), df[df$variable=="line",])

mas define duas legendas separadas. Corrigir o segundo código (e ter que reformular meus dados) também seria bom, mas eu preferiria uma maneira (se alguma) alterar manualmente qualquer chave de legenda (e continuar usando o primeiro approch). Obrigado!

EDITAR:

obrigado @alexwhan você atualizou minha memória sobre o mapeamento de variáveis. No entanto, a maneira mais fácil que eu tenho até agora ainda é a seguinte (muito ruim hack!):

df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))

ggplot(df) +
  geom_line(aes(id, line, colour = "line")) +
  geom_point(aes(id, points, shape = "points")) +
  theme(legend.title=element_blank())

que está apenas escondendo o título dos doisdiferente legendas.

Outras idéias mais que bem vindas !!!

questionAnswers(2)

yourAnswerToTheQuestion