相关疑难解决方法(0)

如何在ggplot2 boxplot中为每个组添加一些观察并使用组均值?

我正在做一个基本的箱子图,其中y=agex=Patient groups

age <- ggplot(data, aes(factor(group2), age))  + ylim(15, 80) 
age + geom_boxplot(fill = "grey80", colour = "#3366FF")
Run Code Online (Sandbox Code Playgroud)

我希望你能用一些东西来帮助我:

1)是否可以在每个组框图上面包括每组的观察次数(但不是在我的组标签所在的X轴上),而不必在油漆中执行此操作:)?我尝试过使用:

age + annotate("text", x = "CON", y = 60, label = "25")
Run Code Online (Sandbox Code Playgroud)

CON第一组在哪里,就在y = 60这个组的箱线图上方.但是,该命令不起作用.我认为它有一些事情可以做,它x是一个连续的而不是一个分类的变量.

2)尽管有很多关于使用平均值而不是中位数的问题,我仍然没有找到适合我的代码?

3)在同样的问题上你有没有办法在箱线图中包含平均组数据?也许用

age + stat_summary(fun.y=mean, colour="red", geom="point")
Run Code Online (Sandbox Code Playgroud)

然而,它只包括一个平均所在的点.或者再次使用

age + annotate("text", x = "CON", y = 30, label = "30")
Run Code Online (Sandbox Code Playgroud)

哪一个CON是第一组,y = 30是〜组年龄均值.知道如何灵活和丰富的ggplot2语法,我希望有一种更优雅的方式来使用真实的统计输出而不是annotate.

任何建议/链接将不胜感激!

谢谢!!

r ggplot2 boxplot

21
推荐指数
2
解决办法
4万
查看次数

在ggplot2 boxplot中添加每组的观察数

关注这个问题:如何在ggplot2 boxplot中为每个组添加一些观察并使用组均值?,我想在ggplot boxplot中添加每组的观察次数.但我在aes映射中添加了一种颜色.

现有答案显示了如何在y轴上调整文本位置.我怎样才能调整x轴的文字位置?

这是重现我的问题的最小示例:

library(ggplot2)

give.n <- function(x){
  return(c(y = median(x)*1.05, label = length(x))) 
  # experiment with the multiplier to find the perfect position
}


p <- ggplot(mtcars, aes(factor(vs), mpg, colour = factor(am))) + 
    geom_boxplot() +
    stat_summary(fun.data = give.n, geom = "text", fun.y = median)
p
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

谢谢你的任何建议.

r ggplot2

12
推荐指数
1
解决办法
1万
查看次数

使用stat_summary按照观察次数注释绘图

如何使用where 变量stat_summary来标记绘图?这是所需输出的示例:n = xx

在此输入图像描述

我可以用这个相当低效的代码制作上面的情节:

nlabels <- sapply(1:length(unique(mtcars$cyl)), function(i) as.vector(t(as.data.frame(table(mtcars$cyl))[,2][[i]])))
ggplot(mtcars, aes(factor(cyl), mpg, label=rownames(mtcars))) +
  geom_boxplot(fill = "grey80", colour = "#3366FF") + 
  geom_text(aes(x = 1, y = median(mtcars$mpg[mtcars$cyl==sort(unique(mtcars$cyl))[1]]), label = paste0("n = ",nlabels[[1]]) )) +
  geom_text(aes(x = 2, y = median(mtcars$mpg[mtcars$cyl==sort(unique(mtcars$cyl))[2]]), label = paste0("n = ",nlabels[[2]]) )) +
  geom_text(aes(x = 3, y = median(mtcars$mpg[mtcars$cyl==sort(unique(mtcars$cyl))[3]]), label = paste0("n = ",nlabels[[3]]) )) 
Run Code Online (Sandbox Code Playgroud)

这是对这个问题的跟进:如何在ggplot2 boxplot中为每个组添加一些观察并使用组均值?我可以stat_summary用来计算和显示观察的数量,但我还没有找到一种方法来包含n =stat_summary输出中.似乎stat_summary可能是进行此类标记的最有效方法,但欢迎使用其他方法.

plot r graph ggplot2

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

ggplot2 ×3

r ×3

boxplot ×1

graph ×1

plot ×1