2017-10-04 101 views
0

我有这样一个数据帧:如何在ggplot2中手动选择具有重要意义的箱形图的颜色?

 values TF group_num group 
1 0.22722942 FALSE   5  5 
2 -0.36530296 TRUE   3  3 
3 0.38795866 FALSE   4  4 
4 0.48439459 FALSE   4  4 
5 0.93879881 FALSE   4  4 
6 -0.03598468 TRUE   4  4 
7 -0.49993149 FALSE   4  4 
8 1.26200426 FALSE   5  5 
9 -0.02348821 TRUE   4  4 
10 -0.78135675 FALSE   4  4 
11 -0.00466411 FALSE   2  2 
12 -0.28493506 TRUE   3  3 
13 -1.41763529 TRUE   4  4 
14 2.03987995 FALSE   1  1 
15 -0.70235537 FALSE   3  3 
16 0.36176799 FALSE   2  2 
17 0.22171013 FALSE   5  5 
18 -0.56860951 FALSE   4  4 
19 -0.51199794 TRUE   4  4 
20 -0.92628365 FALSE   4  4 

group_num =数字
组=因素

所以,当我想创建一个箱线图,显示利用geom_signif我当错误的意义我用这个:

ggplot(test, aes(x = TF, y = values, fill=group_num)) + 
    geom_boxplot() + 
    stat_signif(comparisons=list(c('TRUE','FALSE')),map_signif_level = T) + 
    facet_grid(~group_num) + 
    scale_fill_manual(values=c("firebrick2","darkorchid4","dodgerblue4","deepskyblue4","gray48")) + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     panel.background = element_blank(), 
     axis.line = element_line(colour = "black"), 
     strip.text.x = element_blank()) 

Error: Continuous value supplied to discrete scale

因为我用group_num这是数字

然而,当我用组(因素),我得到这样的输出:

ggplot(test, aes(x = TF, y = values, fill=group)) + 
    geom_boxplot() + 
    stat_signif(comparisons=list(c('TRUE','FALSE')),map_signif_level = T)+ 
scale_fill_manual(values=c("firebrick2","darkorchid4","dodgerblue4","deepskyblue4","gray48"))+ 
      facet_grid(~group) + 
     scale_color_manual(values=c("firebrick2","darkorchid4","dodgerblue4","deepskyblue4","gray48")) + 
     theme(panel.grid.major = element_blank(), 
      panel.grid.minor = element_blank(), 
      panel.background = element_blank(), 
      axis.line = element_line(colour = "black"), 
      strip.text.x = element_blank()) 

enter image description here

不过,我想获得显著点所有组。要做到这一点,如果我使用group_num没有选择颜色它的作品。 和我得到的输出是这样的:

ggplot(test, aes(x = TF, y = values, fill=group_num)) + 
    geom_boxplot() + 
    stat_signif(comparisons=list(c('TRUE','FALSE')),map_signif_level = T) + 
    facet_grid(~group_num) + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     panel.background = element_blank(), 
     axis.line = element_line(colour = "black"), 
     strip.text.x = element_blank()) 

enter image description here

所以,我的问题是如何使用一组(as.factor),以获得像在顶部意义的第一张照片的输出对于我使用facet_grid的所有不同的组?

回答

1

尝试在geom_boxplot呼叫添加组作为fill(如因子)变量:

ggplot(test, aes(x = TF, y = values)) + 
    geom_boxplot(aes(fill=group)) 
相关问题