如何使用ggplot更改boxplot的轮廓颜色?

时间:2017-10-24 09:36:58

标签: r ggplot2 boxplot

我的数据具有完全相同的值,因此它们在框图中只是一条线。但是,这意味着我无法区分群组之间的区别,因为填充不会显示。如何将箱线图的轮廓更改为特定颜色。

注意:我不希望所有轮廓颜色都是相同的颜色,如下一行代码所示:

library(dplyr)
library(ggplot2)

diamonds %>% 
      filter(clarity %in% c("I1","SI2")) %>% 
    ggplot(aes(x= color, y= price, fill = clarity))+
      geom_boxplot(colour = "blue")+
      scale_fill_manual(name= "Clarity", values = c("grey40", "lightskyblue"))+
      facet_wrap(~cut)

相反,我希望I1的所有图(用grey40填充)用黑色勾勒出来,而用SI2(用lightskyblue填充)的图用蓝色勾勒出来。

以下似乎无法正常工作

geom_boxplot(colour = c("black","blue"))+

OR

scale_color_identity(c("black", "blue"))+

OR

scale_color_manual(values = c("black", "blue"))+

1 个答案:

答案 0 :(得分:1)

你必须:

  1. color = clarity添加到美学
  2. scale_color_manual添加到带有所需颜色的ggplot对象
  3. 以与scale_color_manual相同的方式命名scale_fill_manual以获得单个组合图例
  4. 代码:

    library(dplyr)
    library(ggplot2)
    diamonds %>% 
        filter(clarity %in% c("I1","SI2")) %>% 
        ggplot(aes(x= color, y= price, fill = clarity, color = clarity))+
            geom_boxplot()+
            scale_fill_manual(name= "Clarity", values = c("grey40", "lightskyblue"))+
            scale_color_manual(name = "Clarity", values = c("black", "blue"))+
            facet_wrap( ~ cut)
    

    简介:

    enter image description here