r - 将 `sample sizes` 添加到 ggplot violinplot 图例时出现问题

标签 r plot ggplot2 violin-plot

我有以下ggplot2 violinplot

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() 所示)。我想在图例中每个标签的右侧放置一个整数

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")

但这不会影响传说。

最佳答案

以下解决方案是对您的代码稍作修改。我所做的就是通过创建新标签来更改数据集 (PlantGrowth %>% group_by(group) %>% mutate(group2=paste(group,length(group))) %>% ungroup()) 并将新标签用作图例 (fill=group2)。

require(dplyr)
require(ggplot2)
bp <- ggplot(data=PlantGrowth %>% group_by(group) %>% mutate(group2=paste(group,length(group))) %>% 
ungroup(), aes(x=group, y=weight, fill=group2)) + geom_violin() +
geom_dotplot(binaxis='y', stackdir='center', dotsize=0.5, binwidth = 0.01) + 
stat_summary(fun.data = give.sample.size, geom = "text")

关于r - 将 `sample sizes` 添加到 ggplot violinplot 图例时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45063109/

相关文章:

R:计算自上次出现值以来的累计和和计数

r - 多变量图的 geom_segment 线垂直

r - 使用 R 按组计算累积标准偏差

r - 使用plot_model根据随机效应更改数据点的颜色

python - 在 matplotlib 中覆盖透明路径?

plot - gnuplot 没有正确显示 rowstacked 直方图

r - 使用facet_wrap时在ggplot2中使用具有不同比例因子的辅助y轴

r - 使用 ggplot2 添加颜色和位置闪避以选择图中的年份

mysql - R - 使用 ""将日期/时间变量推送到 SQL 查询中

python - pandas 条形图结合线图显示了从 1970 年开始的时间轴