控制R曲线轴的数字格式

时间:2010-08-05 13:28:16

标签: r plot

我有一些100k的值。当我将它们绘制为R中的一条线时(使用plot(type="l"),x轴刻度旁边的数字以科学格式打印(例如0e+00,2e+04,...,1e+05)。相反,我希望它们是:

A)0,20kb,...,100kb

B)相同但现在第一个坐标应为1(即从1开始计数而不是0)。

顺便说一句 R数组使用从1开始的编号(与perl,java等中的数组相反)所以我想知道为什么在绘制“他们”决定从0开始...

2 个答案:

答案 0 :(得分:9)

A)

R> xpos <- seq(0, 1000, by=100)
R> plot(1:1000, rnorm(1000), type="l", xaxt="n")
R> axis(1, at=xpos, labels=sprintf("%.2fkb", xpos/1000))

B)与上述相同,调整xpos

答案 1 :(得分:1)

这个问题已经很老了,但是当我为所描述的问题寻找解决方案时,它的排名很高。因此,我补充说 - 很晚 - 回答并希望它可以帮助其他人:-)。

在某些情况下,使用R建议的刻度位置可能很有用。 R为此目的提供了函数axTicks。可能它在R2.X中不存在,但仅从R3.X开始。

A)

myTicks = axTicks(1)
axis(1, at = myTicks, labels = paste(formatC(myTicks/1000, format = 'd'), 'kb', sep = ''))

B)

如果您绘制plot(rnorm(1000))之类的数据,那么第一个x值是1而不是0.因此,编号会自动从1开始。也许这是以前版本R的问题? !