ggplot(majdf, aes(x = val)) +
geom_point(data = majtxt, aes(x = geq, colour = species),
y = 0.2, size = 0) +
geom_density() +
geom_vline(data = majtxt, aes(xintercept = geq)) +
geom_text(data = majtxt, aes(x = geq, y = 0.2, label = geq, color = species),
angle = 90, show_guide = FALSE) +
facet_wrap(~ lvl) +
scale_colour_discrete(guide=guide_legend(override.aes=list(size=4)))
Wie das funktioniert: ein Punkt geom mit der entsprechenden Farbzuordnung hinzufügen. Dies fügt der Legende einen Punkt hinzu. Um jedoch zu verhindern, dass sie in der Grafik angezeigt wird, stellen Sie die Größe des Punktes auf 0 ein. Sagen Sie im Text geom, dass dieser Teil (das gedrehte a) nicht zur Legende hinzugefügt werden soll (show_guide = FALSE
). Schließlich wird die Legende genau den Punkt haben, den du willst und nicht die Seitwärtsrichtung; Leider ist es in der gleichen Größe wie in der Handlung gezeichnet, nämlich 0. So verwenden Sie das override.aes
Argument zu guide_legend
(die an guide
in scale_colour_discrete
übergeben wird), stellen Sie die Größe des Punktes auf etwas "groß".
Bei diesem Ansatz müssen die Teile nicht auf zwei verschiedenen Plots auseinandergezogen und wieder zusammengefügt werden.
Eine alternative Möglichkeit, die Führungsparameter zum Spezifizieren der guides
Funktion verwendet, anstatt es als Argument an der Weitergabe scale_colour_manual
:
ggplot(majdf, aes(x = val)) +
geom_point(data = majtxt, aes(x = geq, colour = species),
y = 0.2, size = 0) +
geom_density() +
geom_vline(data = majtxt, aes(xintercept = geq)) +
geom_text(data = majtxt, aes(x = geq, y = 0.2, label = geq, color = species),
angle = 90, show_guide = FALSE) +
facet_wrap(~ lvl) +
guides(colour = guide_legend(override.aes=list(size=4)))
Die resultierende Grafik das gleiche ist.
Wenn Sie Ihre Legende in mehr als eine Spalte aufteilen, vergewissern Sie sich, dass Sie die Anzahl der Spalten durch die Skala übergeben, wie zum Beispiel 'scale_colour_discrete (guide = guide_legend (nrow = 2, override.aes = list (size = 4))) 'Sonst bricht die Hölle los. Ein großes Lob an Didzis im R-Chatroom: http://chat.stackoverflow.com/transcript/message/14908487#14908487 –
Hat jemand herausgefunden, warum override.aes nicht gut mit geom_text spielt? – baptiste