我做了一个散点图,y轴范围从0到800,000。如何使y轴刻度显示数字(“0”,“200,000”,“400,000”,“600,000”,“800,000”),而不是它们的标准形式(“0e+00”,“2e+05”,“4e+05”,“6e+05”,“8e+05”)?
我做了一个散点图,y轴范围从0到800,000。如何使y轴刻度显示数字(“0”,“200,000”,“400,000”,“600,000”,“800,000”),而不是它们的标准形式(“0e+00”,“2e+05”,“4e+05”,“6e+05”,“8e+05”)?
请参见?options
中的scipen选项。以下是一个示例:
set.seed(42)
dat <- data.frame(x = runif(100, min = 0, max = 1000000),
y = runif(100, min = 0, max = 1000000))
layout(matrix(1:2, ncol = 2))
plot(y ~ x, data = dat)
opt <- options(scipen = 10)
plot(y ~ x, data = dat)
options(opt)
layout(1)
这会产生以下结果:
其他选项包括在plot()
调用中使用axes = FALSE
来压制轴,然后使用axis()
添加自己的轴,并使用format()
提供自定义标签。如果您确实想要数字中的“,”号分隔千位数,则应采用这种方式;有关详细信息,请参阅?format
。
以下是一个示例,帮助您入门:
x <- 1:10
y <- runif(10) * 1e6
yrange <- c(0, 1e6)
ticks <- pretty(yrange)
labels <- format(ticks, big.mark=",", scientific=FALSE)
plot(y~x, yaxt="n", ylim = yrange)
axis(2, at = ticks, labels = labels, las = 1, cex.axis=0.7)
dplyr
函数:
scale_y_continuous(labels = scales::comma)
使用format和scientific=FALSE:
a<-c(100000, 200000)
format(a, scientific=FALSE)
format()
或类似的方法,就像我的答案一样。 - Josh O'Brien