在我的数据集中标记smaple大小时,我遇到了以下问题:
library(ggplot2)
library(EnvStats)
library(tidyverse)
cars_pre= mtcars %>% mutate(time="Pre")
cars_post= mtcars %>% mutate(time="Post")
df= rbind(cars_pre,cars_post)
p <- ggplot(df, aes(x = factor(cyl), y = mpg, fill = time) +
theme(legend.position = "none"))
ggplot(df, aes( factor(cyl), mpg)) + geom_boxplot(aes(fill = time) ) +
stat_n_text()我的问题是,我有前/后组:但这些是相同的主题,所以当我绘制stat_n_text时,它会使我的样本大小加倍,因为它将前/后样本加在一起(将它们作为单独的主题)。有没有办法更新n,使其值为其值的一半(在图片中,我希望Cyl4、5和6的n分别为11、7和14 )?

发布于 2021-10-05 14:12:21
我想出了以下方法来修改它:通过更改图形数据:
library(splitstackshape)
p<-ggplot(df, aes( factor(cyl), mpg)) +
geom_boxplot(aes(fill = time) ) +
stat_n_text( )然后从ggplot对象中提取数据:
q <- ggplot_build(p)修改样本量数据标签
q$data[[2]]= q$data[[2]] %>% cSplit(., 'label', '=') %>% mutate(label=paste0(label_1, "=", label_2/2))将对象绘制回Q <- ggplot_gtable(q)绘制(Q)

https://stackoverflow.com/questions/69445147
复制相似问题