【问题标题】:How to change the values in `stat_n_text` function?如何更改 `stat_n_text` 函数中的值?
【发布时间】:2021-11-25 10:04:18
【问题描述】:

在我的数据集中标记样本大小时遇到​​以下问题:

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,所以它将是其价值的一半(在图片中,我希望 n = 11、7 和 14 分别用于 cyl 4、5 和 6)?

【问题讨论】:

    标签: r ggplot2 envstats


    【解决方案1】:

    我想出了以下修改方法:通过更改图形数据:

        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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多