首页 > 解决方案 > R中按因子着色的线配对箱线图

问题描述

我从以下数据制作了一个配对箱线图:

 manage natcode sites     variable       value
    F       Y   MF1       PESUKmedian    59.4363000
    F       Y   MF2       PESUKmedian    2.9628212
    F       Y   MF3       PESUKmedian    11.9980950
    F       Y   MF4       annualmedian   5.5549982
    M       Y   MM1       annualmedian   10.9977350
    M       Y   MM2       PESUKmedian    19.0449542

使用代码:

ggplot(df2, aes(variable, value)) +
  geom_boxplot(width=0.3, size=1.5, fatten=1.5, colour="black") +
  geom_point(colour="red", size=2, alpha=0.5) +
  geom_line(aes(group=sites), colour= "black") +
  theme_classic()

这是可以接受的,但我想找出为什么有些变化比其他变化更大,如果我可以通过“管理”或“natcode”为 geom_line 中的线条着色会很棒,但我似乎无法弄清楚这一点

标签: rggplot2boxplot

解决方案


或者,如果您想通过 natcode 着色,只需将行更改geom_line(aes(group = sites, color = manage))geom_line(aes(group = sites, color = natcode))

library(ggplot2)
df2 <- data.frame(manage = c("F","F","F","F","M","M"),
                  natcode = c("Y","Y","Y","Y","Y","Y"),
                  sites = c("MF1","MF2","MF3","MF4","MF1","MF2"),
                  variable = c("PESUKmedian","PESUKmedian","PESUKmedian","annualmedian","annualmedian","PESUKmedian"),
                  value = c(59.4363000,2.9628212,11.9980950,5.5549982,10.9977350,19.0449542))
df2
 manage natcode sites     variable     value
      F       Y   MF1  PESUKmedian 59.436300
      F       Y   MF2  PESUKmedian  2.962821
      F       Y   MF3  PESUKmedian 11.998095
      F       Y   MF4 annualmedian  5.554998
      M       Y   MF1 annualmedian 10.997735
      M       Y   MF2  PESUKmedian 19.044954

ggplot(df2, aes(variable, value)) +
  geom_boxplot(width=0.3, size=1.5, fatten=1.5, colour="black") +
  geom_point(colour="red", size=2, alpha=0.5) +
  geom_line(aes(group=sites, color = manage)) +
  theme_classic()

推荐阅读