使用ggplot订购箱形图和图例标签

时间:2017-12-02 19:45:15

标签: r ggplot2 legend boxplot

我想用ggplot2创建一个箱形图,我想按照数据框的顺序组织绘图,例如

  

我知道R按字母顺序组织箱形图。我怎么能:

     
      
  1. 按照Taste - Color - Capacity
  2. 的顺序组织X轴   
  3. 切换方框,即先是绿色,然后是橙色,而不是橙色和绿色
  4.   
  5. 也切换图例顺序,先是NaCl,然后是O_ {2}
  6.   
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

1 个答案:

答案 0 :(得分:1)

您可以使用不同的方法来控制输出。一个快速的解决方案是:

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"))

只需使用参数guides(fill=guide_legend(reverse=TRUE)),即可手动更改颜色的顺序并使用scale_x_discrete在X轴上修复特定订单。

enter image description here

也可以使用DF$Quality <- factor (DF$Quality, levels = c ("Taste", "Color of package", "Capacity"))对关卡进行重新排序,并在不使用scale_x_discrete()的情况下获得相同的结果。