【问题标题】:How do I add a comma separator to a text label in geom_text?如何将逗号分隔符添加到 geom_text 中的文本标签?
【发布时间】:2019-10-22 18:05:54
【问题描述】:

我需要更改geom_text() 中的数字格式以包含逗号。

我已经看到了相关的问题,但我无法让这些解决方案发挥作用。我已经尝试过“sep =”,count/sum(count) 类型,以及我刚刚转录的一些其他代码,但不知道什么意思。在这让我发疯之前,我需要一条生命线。

这是我的数据:

 N_PASSENGERS Count Mean_Dist Mean_Time Mean_Fare
         <int> <int>     <dbl>     <dbl>     <dbl>
1            1 57216      2.16     10.2       145.
2            2  8421      1.92      9.21      213.
3            3  2022      2.01      9.67      234.
4            4   572      1.96      9.22      351.
5            5   306      2.40      9.84      505.
6            6   184      1.90      7.63      446.

ggplot(Difference, aes(x = N_PASSENGERS, y = Mean_Dist, size = Count)) + 
  geom_point() + 
  scale_size(range = c(0, 20)) + 
  xlim(0, 6) + 
  ylim(1.75, 2.5) + 
  geom_text(aes(label = Count), 
            size = 3, vjust = 4.2, 
            WHAT THE HELL GOES HERE TO MAKE SOME COMMAS HAPPEN?) +
  theme_minimal() + 
  theme(legend.position = "none") + 
  labs(x = "Number of Passengers", 
       y = "Mean Distance",
       title = "Trips by Number of Rides and Distance") + 
  theme(plot.title = element_text(hjust = .5))

我希望在我的数据点旁边看到像 10,000 这样的数字。相反,我看到像 10000 这样的数字。我很欣赏这是一个幼稚的简单问题。我正在尝试自学 R,所以我很感激任何帮助。

【问题讨论】:

  • 效果很好。非常感谢您抽出宝贵时间提供帮助!

标签: r ggplot2 geom-text


【解决方案1】:

您可以使用scales 包,它允许一些格式选项,例如commadollarpercent

df <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000))
library(ggplot2)
library(scales)
ggplot(df, aes(a, b)) + 
  geom_point(size=4) +
  scale_y_continuous(labels = comma)

【讨论】:

  • 秤包就是答案。非常感谢您花时间帮助我。我真的很感激。
  • @jon-robinson 欢迎您。请接受它作为答案并投票。谢谢
  • 这个答案也很有用,因为一旦我将逗号放入 geom_text,我注意到我也希望它们出现在 y 轴标签中!
【解决方案2】:

您可以在 aes() 中的美学映射 geom_text 中格式化文本标签。

代替:

  ... +
  geom_text(aes(label = Count), size = 3, vjust = 4.2) +
  ...

用途:

  ... +
  geom_text(aes(label = scales::comma(Count)), size = 3, vjust = 4.2) +
  ...

完整的数据和代码:

Difference <- read.table(text = "
                         N_PASSENGERS Count Mean_Dist Mean_Time Mean_Fare
                         1            1 57216      2.16     10.2       145.
                         2            2  8421      1.92      9.21      213.
                         3            3  2022      2.01      9.67      234.
                         4            4   572      1.96      9.22      351.
                         5            5   306      2.40      9.84      505.
                         6            6   184      1.90      7.63      446.")

ggplot(Difference, aes(x = N_PASSENGERS, y = Mean_Dist, size = Count)) + 
  geom_point() + 
  scale_size(range = c(0, 20)) + 
  xlim(0, 6) + 
  ylim(1.75, 2.5) + 
  geom_text(aes(label = scales::comma(Count)), 
            size = 3, vjust = 4.2) +
  theme_minimal() + 
  theme(legend.position = "none") + 
  labs(x = "Number of Passengers", 
       y = "Mean Distance",
       title = "Trips by Number of Rides and Distance") + 
  theme(plot.title = element_text(hjust = .5))

【讨论】:

  • 这应该是公认的答案。它回答了实际问题!我需要 geom_text() 中的逗号,而不是 y 轴数字(我的主题隐藏)。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 2017-09-10
  • 1970-01-01
相关资源
最近更新 更多