将y轴刻度标签从标准格式更改为完整数字

时间:2012-06-13 17:07:44

标签: r

我做了一个散点图,y轴范围从0到800,000。如何使y轴刻度显示数字(" 0"," 200,000"," 400,000"," 600,000&#34 ;," 800,000")而不是他们的标准形式(" 0e + 00"," 2e + 05"," 4e + 05" ," 6e + 05"," 8e + 05")?

4 个答案:

答案 0 :(得分:6)

请参阅?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)

产生:

scipen_plot

其他选项包括在axes = FALSE调用中使用plot()抑制轴,然后使用axis()使用format()添加自定义的带有自定义提供标签的轴;有关详细信息,请参阅?format。如果你真的想要“数字”中的数字,这就是你要走的路。

答案 1 :(得分:4)

这是一个让你入门的例子:

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) 

enter image description here

答案 2 :(得分:1)

使用格式和科学= FALSE:

a<-c(100000, 200000)
format(a, scientific=FALSE)

答案 3 :(得分:1)

您可以使用dplyr函数:

scale_y_continuous(labels = scales::comma)