作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
可能我的问题可能是重复的,但我无法在 ggplot2
中做到这一点( tidyverse
) 仅?
我想在 ggplot2
中为箱线图的每个组/元素添加观察数和中位数的计数
这是reprex
library(tidyverse)
set.seed(123)
df <- iris %>% sample_n(100)
df %>%
mutate(grp = ifelse(Sepal.Width > mean(Sepal.Width), 'Gr-1', 'Gr-2')) %>%
ggplot(aes(x = Species, y = Sepal.Length, fill = grp)) +
geom_boxplot() +
coord_flip() +
facet_wrap(. ~ grp)
最佳答案
我认为您可以使用以下来自 article 的解决方案.为此,我们可以使用 stat_summary
功能,但对于它的 fun.data
我们必须创建一个自定义函数来计算计数和中位数。需要注意的是,我们使用的是geom_text
在 stat_summary
所以它需要 x
或 y
和 label
争论。所以当我们写我们的自定义 stat_box_sum
函数,我们必须确保生成的数据框具有这些美学作为列名:
stat_box_sum <- function(y, upper_limit = max(iris$Sepal.Length)) {
DF <- data.frame(
y = max(y),
label = paste("N:", length(y), "\n",
"Median:", median(y), "\n")
)
DF
}
stat_box_sum(iris$Sepal.Length)
y label
1 7.9 N: 150 \n Median: 5.8 \n
df %>%
mutate(grp = ifelse(Sepal.Width > mean(Sepal.Width), 'Gr-1', 'Gr-2')) %>%
ggplot(aes(x = Species, y = Sepal.Length, fill = grp)) +
geom_boxplot() +
coord_flip() +
facet_wrap(. ~ grp) +
stat_summary(
fun.data = stat_box_sum,
geom = "text",
hjust = 0.7,
vjust = 0.7)
关于r - 如何在ggplot2的箱线图中添加每组观察数和中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68117425/
我是一名优秀的程序员,十分优秀!