首页 文章

更改晶格图中y轴的比例格式

提问于
浏览
3

大家好我正在制作一个带有格子包的图形,它工作正常,但我的y轴格式有点问题 . 用于此图形的数据保存在 a 中,该列表包含四个数字变量和一个因子变量(在最后一部分中我添加了 dput 版本) . 用于制作我的图表的代码是下一个:

library(lattice)
DD=barchart(a1 ~ a5,a)
DD

我用这段代码得到了这个图形:
enter image description here

在此图中,y轴的比例显示完整的数字,例如2000000,4000000等 . 我不知道是否可以创建一个函数或任何选项来获取y轴中的值,如2,000,000到8,000,000 . dput()dput() 版本是下一个:

structure(list(a1 = c(560492.29, 1433973.37, 3016748.66, 4241217.73, 
6251742.27, 6757161.24, 7408081.05, 7899980.33), a2 = 1:8, a3 = c(0, 
0.00793734405263048, 0.0129172080248807, 0.0324335034787285, 
0.0397094648625047, 0.0555107413716237, 0.0521541081141384, 0.0515512600016815
), a4 = c(0.0142731668976214, 0.010460445301017, 0.0928151568317925, 
0.0707344020275045, 0.0303915279604129, 0.0517968992552855, 0.0202481585970229, 
0.0253165187311296), a5 = structure(1:8, .Label = c("abr 2013", 
"may 2013", "jun 2013", "jul 2013", "ago 2013", "sep 2013", "oct 2013", 
"nov 2013"), class = "factor")), .Names = c("a1", "a2", "a3", 
"a4", "a5"))

非常感谢您的帮助 .

1 回答

  • 2

    您可以指定自定义格式化程序,例如:

    comma_fomatter <- function (lim, logsc = FALSE, at = NULL, ...) 
    {
      ans <- yscale.components.default(lim = lim, logsc = logsc, 
                                       at = at, ...)
      xx = as.numeric(ans$left$labels$labels)
      ans$left$labels$labels <- formatC(xx, format="fg",big.mark = ",")
      ans
    }
    

    然后 :

    barchart(a1 ~ a5,xx, yscale.components =comma_fomatter )
    

    enter image description here

相关问题