2017-04-17 24 views
1

通常在出版物中,通过将*置于条柱上方来显示统计学上显着的差异。我的情节中有很多酒吧,我希望通过对它们进行不同的着色来制作与其他人不同的重要人物。ggplot中着色统计上显着的条柱

例如: 这是该数据集

some_data = data.frame(name = sample(LETTERS, 5), 
         value = rnorm(5, 5, 7), 
         pvalue = rnorm(5, 0.05, 0.02)) 

> some_data 
    name  value  pvalue 
1 Q 8.8101784 0.01691628 
2 Z 5.9426036 0.10228445 
3 U 1.4862314 0.02062453 
4 K -0.1365665 0.04405621 
5 N 8.8828848 0.05992229 

ggplot(some_data, aes(name, value)) + 
    geom_bar(stat = "identity") + 
    geom_text(aes(label=pvalue), position=position_dodge(width=0.9), vjust=-0.25) 

我要的是使条不同颜色的,如果P值更低于0.05

enter image description here

回答

2

ggplot美学让您评估R代码,它可以让你做这样的事情:

ggplot(some_data, aes(x = name, y = value, fill = pvalue < 0.05)) + 
    geom_col() + 
    geom_text(aes(label=pvalue), position=position_dodge(width=0.9), vjust=-0.25) 

编辑:使用geom_col而不是每个Axeman的评论geom_bar(stat = 'identity')

+2

另请注意,'geom_col'已经取代了'geom_bar(stat =“identity”)'成语。 – Axeman

+0

谢谢,我不知道这些。 – PDM

+0

很高兴它有帮助。如果这回答您的问题,请点击答案投票箭头下方的灰色复选标记以接受答案。 –