R 如何使统计摘要适合ggplot中的矩形?

R 如何使统计摘要适合ggplot中的矩形?,r,ggplot2,R,Ggplot2,我想将stat_summary中的文本适配到ggplot中的一个矩形中,这样它会根据可用空间自动调整 库(ggplot2) category最新版本的ggfittext(版本0.8.1)使这一过程变得更加容易。安装后,文本的大小自动调整为您想要的大小变得非常简单: 库(ggplot2) 图书馆(ggfittext) packageVersion(“ggfittext”) #> [1] '0.8.1' 类别 library(ggplot2) category <- c('a','b','a

我想将stat_summary中的文本适配到ggplot中的一个矩形中,这样它会根据可用空间自动调整

库(ggplot2)

category最新版本的ggfittext(版本0.8.1)使这一过程变得更加容易。安装后,文本的大小自动调整为您想要的大小变得非常简单:

库(ggplot2)
图书馆(ggfittext)
packageVersion(“ggfittext”)
#> [1] '0.8.1'
类别
library(ggplot2)
category <- c('a','b','a','b','c','a','c')
values <- c(10,20,30,10,10,20,40)
dataset <- data.frame(category,values)
z = max(values)
stat_box_data <- function(y, upper_limit = z + 40) {
  return( 
    data.frame(
      y = upper_limit,
      label = paste('Contagem =', paste(length(y)), '\n',
                    'Média =', paste(round(mean(y), 1),'horas'), '\n',
                    'Desvio =', paste(round(sd(y), 1),'horas'), '\n',
                    'Mínimo =', paste(round(min(y),1),'horas'), '\n',
                    'Máximo =', paste(round(max(y),1),'horas'), '\n',
                    'Mediana =', paste(round(median(y),1),'horas'), '\n',
                    'Total =', paste(round(sum(y),1),'horas'), '\n'
      )
    )
  )
}
ggplot(dataset,aes(x=category, y=values))+
  geom_rect(aes(x=category, y=values),xmin = 0, xmax = 10, ymin = z+10, ymax = z+50,col = 'white') +
geom_boxplot(aes(x=category, y=values))+
stat_summary(fun.data = stat_box_data, geom = "text", hjust = 0.5,vjust = 0.85) +

geom_point(aes(x=category, y=values))+
facet_grid(. ~ category, space = "free", scales="free", margins=TRUE)