将“样本大小”添加到ggplot violinplot图例中的问题

时间:2017-07-12 16:26:38

标签: r plot ggplot2 violin-plot

我有以下ggplot2小提琴图

library(ggplot2)                                                                                                                                                                                                                                                                                                      
bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + 
             geom_violin() +
             geom_dotplot(binaxis='y', stackdir='center', dotsize=0.5, binwidth = 0.01)                      

enter image description here

根据之前的示例,我不清楚如何在图例中添加标签(如vplot()所示。我想在图例中的每个标签的右侧放置一个整数< / p>

ctrl 10
trt1 10
trt2 10

我已经用

手动计算了这些
> table(PlantGrowth$group) 

自动执行此操作的标准方法是什么?我已经尝试了这个功能

give.sample.size <- function(x) {                                                                                                                                                                                                                                                                                                
    return(c(y = mean(x), label = length(x)))                                                                                                                                                                                                                                                                         
}                                                                                                                                                                                                                                                                                                                 


bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) +
   geom_violin() + 
   geom_dotplot(binaxis='y', stackdir='center', dotsize=0.5, binwidth = 0.01) + 
   stat_summary(fun.data = give.sample.size, geom = "text")

但这不会影响传奇。

1 个答案:

答案 0 :(得分:3)

以下解决方案稍微修改了您的代码。我所做的就是通过制作新标签(window.addEventListener('focus', function () { // request socket.io response }) )来更改数据集,并将新标签用作图例(PlantGrowth %>% group_by(group) %>% mutate(group2=paste(group,length(group))) %>% ungroup())。

fill=group2