ggplot2中的数字格式化轴标签?

med*_*zar 52 r ggplot2

我正在使用ggplot2 0.9.1绘制一个相当简单的图表.

x <- rnorm(100, mean=100, sd = 1) * 1000000
y <- rnorm(100, mean=100, sd = 1) * 1000000
df <- data.frame(x,y)

p.new <- ggplot(df,aes(x,y)) +
  geom_point()
print(p.new)
Run Code Online (Sandbox Code Playgroud)

哪个有效,但ggplot2默认使用不适合我的观众的科学记数法.如果我想通过输入以下内容来更改x轴标签格式:

p.new + scale_x_continuous(labels = comma)
Run Code Online (Sandbox Code Playgroud)

我明白了:

Error in structure(list(call = match.call(), aesthetics = aesthetics,  : 
  object 'comma' not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我注意到语言最近从"格式化"改为"标签".也许我误读了手册页?

编辑:我确实误读了手册页

library(scales)在尝试此操作之前需要加载.

med*_*zar 65

library(scales)在尝试此操作之前需要加载.


Rti*_*ist 6

更一般地说,您可以使用“scales”包控制一些不错的参数。它的函数之一是 number_format()。

library(ggplot2)
library(scales)
p <- ggplot(mpg, aes(displ, cty)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

要格式化数字,您可以使用函数 number_format()。它提供了一些很好的可能性,例如控制小数位数(此处为 2 位小数)和小数点标记(此处为“,”而不是“.”)

p + scale_y_continuous(
  labels = scales::number_format(accuracy = 0.01,
                                 decimal.mark = ','))
Run Code Online (Sandbox Code Playgroud)