Mehrere Legenden mit ggplot2

Ich versuche, das Grundstück mit mehreren Mengen von Daten, die auf dem gleichen Grundstück. Zum Beispiel unten habe ich zwei Experimente mit Einstellungen: "P-0.1" und "P-0.2" als gekennzeichnet durch Faktor B. Für jedes experiment, ich habe drei output-Werte "P", "Q", "O", wie gekennzeichnet durch Faktor A. habe ich gruppiert die Experimente von Füllfarbe und gruppiert die Ausgänge von Farbe, Linientyp, und Form.

library(ggplot2)

dat <- data.frame(
    A = factor(c("O", "O", "P", "P", "Q", "Q", "O", "O", "P", "P", "Q", "Q"), levels=c("O", "O", "P", "P", "Q", "Q","O", "O", "P", "P", "Q", "Q")),
    B = factor(c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1",  "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2"), levels = c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1",  "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2")),
    X = c( 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
    Y = c(10, 15, 12, 13, 9, 14, 30, 20, 32, 21, 27, 19)
)

p = ggplot(data=dat, aes(x=X, y=Y, colour=A, size=A, shape=A, linetype=A, fill=B, group=interaction(A,B))) + geom_point() + geom_line() + theme_bw()
p = p + geom_point(size=4, alpha=0) + geom_point(size=4, show.legend=FALSE) + guides(shape = guide_legend(nrow=3, byrow = TRUE, keywidth = 1.5, keyheight = 1), colour = guide_legend(override.aes = list(alpha=1)))

p = p + scale_shape_manual(name="", values=c(21,22,23))
p = p + scale_colour_manual(name="", values=c("#005ccc", "#007700", "#56B4E9"))
p = p + scale_linetype_manual(name="", values=c(0,0,1))
p = p + scale_size_manual(name="", values = c(1, 1, 1))
p = p + scale_fill_manual(name="", values = c("red", "blue"))

Den oben genannten code zeichnet die Figur richtig, aber ich bin immer schwarze Kreise in der Legende für die Füllung Skala, wo ich erwartet wurde gefüllt, rot-und blau-Boxen. Wie man dieses Problem beheben?

Mehrere Legenden mit ggplot2

  • Dies funktioniert für mich p = p + scale_fill_manual(name = "", values = c("red", "blue"), guide = guide_legend(override.aes = aes(shape = 21))). Mehr Informationen hier
  • Vielen Dank für diesen Hinweis. Dieser funktioniert.
  • Zu bekommen red und blau-Boxen, die Sie möglicherweise verwenden möchten override.aes = list(shape = 22, size = 5)
  • Das sieht schon besser aus. Danke.
InformationsquelleAutor max | 2016-06-19
Schreibe einen Kommentar