2017-12-02 1 views
-1

Ich möchte einen Boxplot mit ggplot2 erstellen und ich möchte das Diagramm in der Reihenfolge des Datenrahmens, z.Reihenfolge der Boxplots und Legendenetiketten mit ggplot

Ich weiß, dass R den Boxplot alphabetisch organisieren. Wie kann ich:

  1. Organisieren Sie die X-Achse in der Reihenfolge Geschmack - Farbe - Kapazität
  2. Switch die Boxen, dh zuerst die grüne und dann die orange, anstatt orange und grün
  3. wechseln die Legende um zu zunächst NaCl und dann O_ {2}
library(ggplot2) 
library(readxl) 

Chemical <- rep(c("NaCl", "Al2"), times = 3, each = 4) 
Quality <- rep(c("Taste", "Color of package", "Capacity"), times = 1, each = 8) 
Accepted <- seq(0, 100, by = 100/23) 

DF <- data.frame(Chemical, Quality, Accepted) 

ggplot(DF, aes(x = Quality, y = Accepted, fill = Chemical)) + 
    geom_boxplot() + 
    scale_fill_manual(values = c("orange", "green"), 
        labels = expression("Al"[2], "NaCl")) + 
    xlab("") + 
    theme(legend.position = "top", legend.title = element_blank()) 

enter image description here

Antwort

0

Sie haben verschiedene Methoden, um die Ausgabe zu steuern. Eine schnelle Lösung wäre:

ggplot(DF, aes(x = Quality, y = Accepted, fill = Chemical)) + 
geom_boxplot() + 
scale_fill_manual(values = c("green", "orange"), 
       labels = expression("Al"[2], "NaCl")) + 
xlab("") + 
theme(legend.position = "top", legend.title = element_blank()) + 
guides(fill=guide_legend(reverse=TRUE)) + 
scale_x_discrete(limits=c("Taste", "Color of package", "Capacity")) 

einfach mit dem Argument guides(fill=guide_legend(reverse=TRUE)), manuell die Reihenfolge der Farben zu verändern und eine spezifische Reihenfolge auf der X-Achse mit scale_x_discrete erreicht Fixierung.

enter image description here

Es ist auch möglich, die Ebene mit DF$Quality <- factor (DF$Quality, levels = c ("Taste", "Color of package", "Capacity")) und erreichen das gleiche Ergebnis ohne scale_x_discrete() Verwendung neu zu ordnen.

Verwandte Themen