简体   繁体   English

格子图中格式化轴标签

[英]Formatting axis labels in lattice plot

How can I change the y-axis labels format to usual ( xxx.xxx ) instead of scientific, in the following plot? 在下图中,如何将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()

Edit: There is a simpler solution: just set options(scipen=10) and then run your code. 编辑: 一个简单的解决方案:只需设置options(scipen=10)然后运行代码。 To only temporarily change the option, you can do something like this: 要仅临时更改选项,您可以执行以下操作:

oscipen <- options(scipen=10)
## <Your plotting code>
options(oscipen)

There may be a simpler solution, but here's what I'd do: 可能有一个更简单的解决方案,但这就是我要做的事情:

## 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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM