Nehmen wir an, ich brauche keine "richtige" Variablenzuordnung, möchte aber noch Legendenschlüssel, um das Diagrammverständnis zu unterstützen. Meine aktuellen Daten sind ähnlich wie die folgende dfVerschiedene Legendenschlüssel in derselben Legende in ggplot2
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 mag ich die Legende Schlüssel in Bezug auf points
zu sein .. nur einen Punkt, ohne die Linie in der Mitte. Ich bin damit nahe dran:
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 separate Legenden. Das Korrigieren des zweiten Codes (und das Umformen meiner Daten) wäre ebenfalls in Ordnung, aber ich würde einen Weg (falls vorhanden) bevorzugen, jeden Legendenschlüssel manuell zu ändern (und den ersten Schritt weiter zu verwenden). Vielen Dank!
EDIT:
Dank @alexwhan Sie mein Gedächtnis über Variable Mapping aktualisiert. Allerdings habe ich der einfachste Weg, so weit habe, ist immer noch der folgende (sehr schlecht 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())
die gerade den Titel der beiden verschiedenen Legenden versteckt.
Andere Ideen mehr als willkommen !!!
Sehr schöne Methode. Wahrscheinlich das beste verfügbare. Ich wollte nur auf jemand anderen warten, aber es scheint, das ist auch das einzige :-). Wie auch immer, vielen Dank! – Michele