您好我正在尝试使用以下代码向格子xyplot添加平均线...这不起作用...
library(lattice)
temp <- data.frame(c(1,1,1,1,1,1,2,2),
c(1,1,2,2,1,1,1,1),
c(1,1,1,2,1,2,1,2),
c(0,0,0,150,150,0,0,0),
c(3,10,4,15,14,2,4,5))
names(temp) <- c("instNo","NoOfAC","NoReleaseLevels","trExt","maxDelay")
tempavg <- aggregate(temp[5], by=list(temp$NoOfAC,temp$NoReleaseLevels
,temp$trExt),FUN = mean)
names(tempavg) <- c("NoOfAC","NoReleaseLevels","trExt","meanDelay")
xyplot(maxDelay ~ NoOfAC |trExt + NoReleaseLevels,
data = temp,
panel = function(x, y, tempavg) {
panel.xyplot(x, y)
panel.abline(tempavg$meanDelay ~ y |trExt + NoReleaseLevels)
},
xlab = "Number Of Aircraft in the Instance",
ylab = "Total Delay (minutes)")
答案 0 :(得分:2)
您的方法的主要问题是它在哪里说panel.abline()
将公式作为其第一个参数? (它没有!)?panel.abline
所说的是它需要参数h
和v
(特别是对于你想到的情况)并且你想要参数{{1 }}
另请注意, lattice 会调用面板函数,其中参数h
和x
包含绘制的每个面板的y
和x
数据。您不需要为此工作进行外部子集化和聚合;它是为你完成的。因此,在使用面板函数绘制时,您需要考虑y
和x
。
在这种情况下,您需要在面板功能中使用y
。 panel.abline(h = mean(y), ...)
允许传递给面板函数的额外参数传播到面板函数中的函数调用。因此,您的匿名面板函数也需要采用...
参数。如下所示。
...