我有一些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开始...
答案 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
的问题? !