Bestellung mehrerer Legenden / Leitfäden (Was ist die automatische Logik und wie kann sie geändert werden?)

Ich bin auf dieses seltsame Verhalten bei der Anordnung von Legenden in ggplot2 gestoßen und kann einfach nicht herausfinden, welche Logik hinter der automatischen Platzierung der Legenden steckt:

Mein Ziel: In einem Plot mit mehreren Skalen möchte ich sie in einer anderen (thematischen) Reihenfolge anordnen als die automatische. Aber ich konnte keinen Befehl in opts () oder guides () finden, um dies für mich zu tun. Und um es klar zu machen: Ich möchte nicht die Elemente innerhalb der Legenden ändern, das funktioniert gut, sondern die Anordnung mehrerer vollständiger Legenden.

Also habe ich zuerst angenommen, dass sie nach Typ sortiert sind, d. H. Nach Skala, Farbe usw. Aber das ist nicht der Fall, ihre Position ändert sich (siehe unten).

Alphabetischer Reihenfolge? Nein.

<code>    library(ggplot2) ## v0.9

    ## Scale_colour on top
    qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) +
    scale_size(name = "A") + scale_colour_discrete(name = "B")

    ## Reverse names --> scale_colour on bottom
    qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) +
    scale_size(name = "B") + scale_colour_discrete(name = "A")

    ## Change name B to C -->  scale_colour on bottom
    qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) +
    scale_size(name = "C") + scale_colour_discrete(name = "A")

    ## Change name B to D -->  scale_colour on top
    qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) +
    scale_size(name = "D") + scale_colour_discrete(name = "A")
</code>

Weitere Positionen von scale_colour (für getauschten scale_size-Namen)

"E": unten"F" - "L": oben"M" - "N": unten

und es erscheint weiterhin oben und unten.

Fabrikordnung? Nein.

<code>    ## From top to bottom: C - B - A
    fname <- factor(c("A","B","C"), levels = c("A","B","C"))
    qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class, alpha = cyl) +
    scale_size(name = fname[1]) + scale_colour_discrete(name = fname[2]) + scale_alpha(name=fname[3])

    ## From top to bottom: B - C - A
    fname <- factor(c("A","B","C"), levels = c("C","B","A"))
    qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class, alpha = cyl) +
    scale_size(name = fname[1]) + scale_colour_discrete(name = fname[2]) + scale_alpha(name=fname[3])

    ## From top to bottom: B - C - A
    fname <- factor(c("A","B","C"), levels = c("B","C","A"))
    qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class, alpha = cyl)+
    scale_size(name = fname[1]) + scale_colour_discrete(name = fname[2]) + scale_alpha(name=fname[3])
</code>

Länge des Titels? Nein, ich höre jetzt mit Beispielcode auf, aber dieser ergab auch schwankende Ordnungen, unabhängig von der Zeichenlänge.

Irgendwelche Ideen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage