在格绘图格式轴标签(Formatting axis labels in lattice plot)

2019-09-22 08:12发布

我怎样才能改变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()

Answer 1:

编辑: 一个简单的解决方案:只需设置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)


文章来源: Formatting axis labels in lattice plot