27

我想在 y 轴上有漂亮的标签。例如,我更喜欢 1,000 而不是 1000。如何在 ggplot 中执行此操作?这是一个最小的例子:

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000))
ggplot(x,aes(x=a, y=b))+
               geom_point(size=4)

感谢您的任何提示。

4

2 回答 2

40

使用这些scales软件包,一些格式选项变得可用:逗号、美元、百分比。请参阅 中的示例?scale_y_continuous

我认为这可以满足您的要求:

library(ggplot2)
library(scales)

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000))

ggplot(x, aes(x = a, y = b)) + 
  geom_point(size=4) +
  scale_y_continuous(labels = comma)
于 2012-11-02T21:55:39.893 回答
8

使用任何具有基本format()功能的角色美化数千人:

示例 1(逗号分隔)。

format(1000000, big.mark = ",", scientific = FALSE)
[1] "1,000,000"

示例 2(空格分隔)。

format(1000000, big.mark = " ", scientific = FALSE)
[1] "1 000 000"

format()使用匿名函数应用于ggplot 轴标签:

ggplot(x, aes(x = a, y = b)) +
        geom_point(size = 4) +
        scale_y_continuous(labels = function(x) format(x, big.mark = ",",
                                                       scientific = FALSE))
于 2017-11-24T00:57:57.673 回答