ggplot:使用图中的点数更新构面标签
ggplot: update facet labels with number of points in the plot
我有一个数据集data
,可以根据以下要求绘制:
#Data
data <- data.frame(level = c(1,2,3,5,2,4,3,1,3),
pay1 = c(10,21,32,12,41,21,36,14,17),
pay2 = c(26,36,5,6,52,12,18,17,19))
#Plot
data %>% pivot_longer(-level) %>%
ggplot(aes(x = name, y = value))+
geom_boxplot() +
facet_wrap(~ level, scales = "free_x") +
theme_bw()
我希望根据另一个变量的频率更新分面标签 level
。
table(data$level)
# 1 2 3 4 5
# 2 2 3 1 1
如何将 Facet 标签更新为 1 (n=2)
、2 (n=2)
、3 (n=3)
、4 (n=1)
、5 (n=1)
??
我只想通过使用 paste
和 n()
:
的 mutate
调用重命名因子水平
data %>%
pivot_longer(-level) %>%
group_by(level, name) %>%
mutate(level = paste0(level, " (n = ", n(), ")")) %>%
ggplot(aes(x = name, y = value))+
geom_boxplot() +
facet_wrap(~ level, scales = "free_x") +
theme_bw()
我有一个数据集data
,可以根据以下要求绘制:
#Data
data <- data.frame(level = c(1,2,3,5,2,4,3,1,3),
pay1 = c(10,21,32,12,41,21,36,14,17),
pay2 = c(26,36,5,6,52,12,18,17,19))
#Plot
data %>% pivot_longer(-level) %>%
ggplot(aes(x = name, y = value))+
geom_boxplot() +
facet_wrap(~ level, scales = "free_x") +
theme_bw()
我希望根据另一个变量的频率更新分面标签 level
。
table(data$level)
# 1 2 3 4 5
# 2 2 3 1 1
如何将 Facet 标签更新为 1 (n=2)
、2 (n=2)
、3 (n=3)
、4 (n=1)
、5 (n=1)
??
我只想通过使用 paste
和 n()
:
mutate
调用重命名因子水平
data %>%
pivot_longer(-level) %>%
group_by(level, name) %>%
mutate(level = paste0(level, " (n = ", n(), ")")) %>%
ggplot(aes(x = name, y = value))+
geom_boxplot() +
facet_wrap(~ level, scales = "free_x") +
theme_bw()