4

我希望能够以百分比单位(例如 0.45 = 45%)显示我的格子 xyplot 的 y 轴。

这是一个带有一些虚假工业过程产量数据的示例:

library(lattice)
set.seed(1234)
my.df <- data.frame(period=c(1:20),
                    n=floor(runif(n=20,min=40,max=80)),
                    d=rpois(n=20,lambda=5))
my.df$yield <- (my.df$n-my.df$d)/my.df$n
xyplot(yield~period,data=my.df)

示例图

我希望上面的 y 轴标签改为 80%、85%、90%、95%

我的yield变量是一个分数,表示为范围内的小数(0 <= yield <= 1)。我不想对 data.frame 中的数据进行预处理(例如乘以 100),我希望通过绘图操作来处理这一点。

4

1 回答 1

7

您可以为yscale.componentsxyplot 的参数提供一个函数(参见?xyplot?xscale.components.default)。用于sprintf()添加百分比符号,您可以在线执行 100 倍乘法。

xyplot(yield~period,data=my.df,
       yscale.components=function(...){
           yc <- yscale.components.default(...)
           yc$left$labels$labels <-
               sprintf("%s%%",yc$left$labels$at*100) ## convert to strings as pct
           return(yc) 
       })

示例图

于 2013-03-27T16:48:38.717 回答