如何为 geom_text 更改 ggplot2 中的千位分隔符

How to change the thousand-separator in ggplot2 for geom_text

我使用 ggplot2 创建了一个条形图,并用它们描述的值标记了条形图。由于这些值相当大,我想使用千位分隔符。但是我想使用倒逗号而不是常规逗号(我已经找到了如何使用逗号分隔)。

我已经尝试过用同样的方法来改变 scale_y_continuous 中的千位分隔符,但它没有用。

我也读到我应该使用:

df <- df %>%
  mutate(label.income = gsub("\,","'", scales::comma(income)))

但我总是收到以下错误消息:"Error in UseMethod("mutate_"): 没有适用于 'mutate_' 的方法应用于 class "function""

的对象

这是我使用的数据和代码:

set1 <- read.table(text = "group income
           group1 30500
           group2 29000
           group3 60500
           group4 18000", header=TRUE)

library(ggplot2)
ggplot(set1, aes(x=group, y=income))+
  theme_bw()+
  geom_bar(stat = 'identity', position = "dodge", fill="#13449f")+
  geom_text(aes(label = income), position = position_dodge(0.9), 
        vjust=1.3, colour = "white", size=5)+
  scale_y_continuous(breaks = seq(0, 70000, by = 10000), limits = c(0,70000), labels=function(income) format(income, big.mark = "'", scientific = FALSE))

如何在条形图的标签上使用与 y 轴上相同的千位分隔符?

这是你想要的吗?

library(ggplot2)
ggplot(set1, aes(x=group, y=income))+
  theme_bw()+
  geom_bar(stat = 'identity', position = "dodge", fill="#13449f")+
  geom_text(aes(label = format(income, big.mark = "'", scientific = FALSE)), position = position_dodge(0.9), 
        vjust=1.3, colour = "white", size=5)+
  scale_y_continuous(breaks = seq(0, 70000, by = 10000), limits = c(0,70000), labels=function(income) format(income, big.mark = "'", scientific = FALSE))