如何在以下图表中将y轴标签格式更改为常规(xxx.xxx
)而非科学?
df <- read.table(textConnection("
ypogr_act amount cumSum
2012-09-20 30.00 30.00
2012-11-19 1834.69 1864.69
2012-11-30 2915.88 4780.57
2012-11-30 2214.98 6995.55
2012-12-18 21815.00 28810.55
2012-12-19 315000.00 343810.55
2012-12-21 1050.00 344860.55
2012-12-28 1300.00 346160.55
2013-01-10 1836.77 347997.32
2013-01-17 122193.00 470190.32
2013-03-22 415000.00 885190.32
")->con,header=T);close(con)
library(lattice)
library(zoo)
x <- zoo(df[2:3], df$ypogr_act)
win.graph(12,8)
print( xyplot(x, lwd=2,xlab='Μήνας',
col=c(rgb(127, 201, 127, max = 255),rgb(56, 108, 176, max = 255)),
scales = list(y=list(rot = 0,abbreviate=FALSE)) ))
trellis.focus("panel", 1, 1, highlight = F)
panel.grid(h = -1, v = 0, col = "grey", lty = 3)
trellis.unfocus()
答案 0 :(得分:4)
编辑 是一个更简单的解决方案:只需设置options(scipen=10)
然后运行您的代码即可。要暂时更改选项,您可以执行以下操作:
oscipen <- options(scipen=10)
## <Your plotting code>
options(oscipen)
可能有一个更简单的解决方案,但这就是我要做的事情:
## Write a customized axis annotation function
## (Uses latticeExtra::xscale.components.log() et al. as templates.)
yscale.components.custom <- function (lim, logsc = FALSE, ...) {
ans <- yscale.components.default(lim, logsc = logsc, ...)
ans$left$labels$labels <- format(ans$left$labels$at, digits=3, scientific=10)
ans
}
## Point to the customized function via xyplot's 'yscale.components=' argument
xyplot(x, lwd=2,xlab='???a?',
col=c(rgb(127, 201, 127, max = 255),rgb(56, 108, 176, max = 255)),
scales = list(y=list(rot = 0,abbreviate=FALSE)),
yscale.components = yscale.components.custom)