我有一个大的数据帧。这是样本数据(第一小部分观察)。
Year ComplaintCategory Days Loop
FY07-09 Service 1 Short
FY07-09 Service 22 Short
FY07-09 Product 15 Long
FY07-09 Product 6 Long
FY07-09 Product 6 Long
FY07-09 Service 3 Short我只想在条件框图上显示中值。计算与每个框图对应的中值,并将其存储在向量CalculatedMedian.中。中值如下所示。
12.0 26.0 13.5 17.0 20.0 48.0 35.0 21.0 NA 0.0 NA 29.0 30.0 19.0
如何在每个面板中只打印中值,以及在中位数位置对应的方框图?
bwplot(Days ~ Loop | factor(Year),
ProductData, layout = c(8, 1), pch = rep("|", 2),
ylim = c(-10,100), scales=list(y = list(at=seq(0, 100,10))),
main=list(label="", cex=1.4),
ylab=list(label="Settlement Days", cex=1.3),
xlab=list(label="Loop", cex=1.3),
par.settings = list( box.rectangle = list(col= "black",lwd=1.3,lty=1),
box.umbrella = list(col= "black",lwd=1.3,lty=1),
ylim = seq(0, 100, by=10),
plot.symbol = list(col='black')),
panel=function(x, y,...) {
panel.abline(v = x, h = seq(0, 100, by = 10),
col = "lightgrey",lty = 2,lwd=1)
panel.bwplot(x, y,fill=c('lemonchiffon1','lavenderblush1'),...)
panel.text(x = x, y =CalculatedMedian, labels = CalculatedMedian)}下面是代码的输出:

发布于 2017-03-01 13:28:59
下面是一个使用一些测试数据的最小示例。如果您想要一个解决方案与您的原始数据,请提供一个可重复的例子。
这里,我们在调用中创建一个中介向量,然后使用从中介获取的坐标来绘制它们。
dd <- data.frame(
x = rnorm(100),
ind = as.factor(rbinom(100, 3, 1/3))
)
bwplot(x ~ ind, data = dd, md = tapply(dd$x, dd$ind, median),
panel = function(x, y, md, ...) {
panel.bwplot(x, y, ...)
panel.text(x = 1:4, y = md, labels = round(md, 2), pos = 3)
})

https://stackoverflow.com/questions/36160738
复制相似问题