我在R中使用正常的 plot()
,并使用漂亮函数执行标签和滴答以获得更大的灵活性(标记...) .
但事实上,值"zero"的标签没有在相应的刻度线周围正确对齐(居中),而其他所有标签看起来都很正常 . (见下面链接的截图 . )
-
只有当我在格式(...)中使用"scientific=FALSE"时才会发生
-
看起来是正确的,如果我使用"scientific=TRUE"
看来,零与右边对齐,而不是居中,R相信“零”与其他大数字(例如“100 000”)具有相同的位数,并且它对齐“000 000”居中而不是只有“0” .
我能做什么容易吗?
最小工作范例:
plot(x=NULL, y=NULL, xlab="xlab", ylab="ylab"
, xlim=range(2007:2014), ylim=range(0:500000), axes=FALSE)
box()
ticks_x <- pretty(2007:2014,n=6)
ticks_y <- pretty(0:500000,n=8)
labels_x <- format(ticks_x)
labels_y <- format(ticks_y , big.mark = " " , decimal.mark=",", scientific=FALSE)
axis(1, at = ticks_x, labels = labels_x)
axis(2, at = ticks_y, labels = labels_y)
截图:
如果没有使用科学模式,任何建议如何“居中”“零”?
不可能使用“作为文本插入”或类似的手动解决方案,因为绘图是在循环内部创建的,有时只会出现零,但总是错误对齐 .
非常感谢!
3 回答
轴标签是字符串 . 检查当前的
labels_y
:你会得到不希望的对齐,因为0的标签是
" 0"
. 问题可以通过以下方式解决:FINAL SOLUTION:
介绍......
......“labels_y < - ...”和“axis(...”之间的诀窍!
只需使用
axis(2, at = ticks_y-50000, labels = labels_y)
. 如果您想自动化,可以使用标准杆("usr")根据范围进行移动 .