4

xxx.xxx在下图中,如何将 y 轴标签格式更改为通常 ( ) 而不是科学格式?

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()
4

1 回答 1

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)
于 2012-09-11T17:36:13.050 回答