在 ggplot 中向 geom_text 标签添加逗号

Adding commas to geom_text labels in ggplot

我有一个数据集,我想在其中查看测试分数和经历事件的人数百分比:

dat <- data.frame(score = 1:7,
              n.event = c(263,5177,3599,21399,16228,10345,1452),
              n.total = c(877,15725,13453,51226,32147,26393,7875),
              percentage = c(30,33,27,42,50,39,18))

我可以像这样用百分比和分数绘制它:

library(ggplot2)
ggplot(data=dat, aes(x=score, y=percentage)) +
 geom_line() +
 geom_text(aes(label = paste0(dat$percentage,"*\'%\'~","frac(",dat$n.event, 
                              ",", dat$n.total, ")")),parse = TRUE)

但是,我似乎不知道如何在分数中添加逗号。这并不像我想象的那样有效:

library(scales)
ggplot(data=dat, aes(x=score, y=percentage)) +
 geom_line() +
 geom_text(aes(label = paste0(dat$percentage,"*\'%\'~","frac(",comma(dat$n.event), 
                              ",", comma(dat$n.total), ")")),parse = TRUE)

感谢您的帮助!

数字中的逗号令人困惑 frac

你可以看到更简单的问题

geom_text(aes(label = "frac(1,000, 2,000)"), parse = TRUE)

我们需要使用 frac 中的字符来获得所需的输出。如果在语句周围使用双引号,您可以在值周围使用单引号。

geom_text(aes(label = "frac('1,000', '2,000')"), parse = TRUE)

因此,您可以将 comma 语句用单引号括起来,用于标签的 frac 部分。

geom_text(aes(label = paste0("frac('", comma(dat$n.event), "','", 
                            comma(dat$n.total), "')")), parse = TRUE)

整个语句将是

geom_text(aes(label = paste0(dat$percentage, "*\'%\'~", "frac('", comma(dat$n.event), 
                            "','", comma(dat$n.total), "')")), parse = TRUE)