【问题标题】:Change scale format for y axis in lattice plot更改晶格图中 y 轴的比例格式
【发布时间】:2014-01-13 00:16:29
【问题描述】:

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

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

我用这段代码得到了这个图形:

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

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

非常感谢您的帮助。

【问题讨论】:

    标签: r lattice


    【解决方案1】:

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

    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 )
    

    【讨论】:

    • 感谢您的帮助@agstudy 和百分比我试图使用percentagescales 包更改formatC(xx, format="fg",big.mark = ",")percent(xx) 并且它不起作用。我怎么能解决这个问题。
    • @Duck 使用这个scales::percent_format()(xx) 也许你应该在 (a1/max(a1)) 之前对你的 a1 进行规范化
    • 感谢@agstudy 和一个小问题,有任何选项可以更改格子中正方形图的大小我想获得相同的图形,但尺寸较小。
    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 2017-04-22
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多