Unterschiedliche Legendenschlüssel innerhalb derselben Legende in ggplot2

Angenommen, ich benötige keine 'richtige' Variablenzuordnung, hätte aber trotzdem gerne Legendenschlüssel, um das Diagrammverständnis zu verbessern. Meine tatsächlichen Daten sind ähnlich wie die folgenden 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"))

Grundsätzlich möchte ich den Legendenschlüssel relativ zupoints zu sein .. nur ein Punkt, ohne die Linie in der Mitte. Dem bin ich mit folgendem nahe gekommen:

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",])

aber es definiert zwei getrennte Legenden. Das Korrigieren des zweiten Codes (und das Umformen meiner Daten) wäre ebenfalls in Ordnung, aber ich würde eine Möglichkeit vorziehen (falls vorhanden), einen Legendenschlüssel manuell zu ändern (und weiterhin den ersten Ansatz zu verwenden). Vielen Dank!

EDIT:

danke @alexwhan, du hast mein Gedächtnis über Variablen-Mapping aufgefrischt. Der einfachste Weg, den ich bisher gefunden habe, ist jedoch immer noch der folgende (sehr schlechter 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())

Das versteckt nur den Titel der beidenanders Legenden.

Andere Ideen mehr als willkommen !!!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage