Этот вопрос является неожиданным продолжением из Нарисуйте вертикальное окончание линии индикатора ошибки в точечной диаграмме . Пока процитированный вопрос был успешно решен - есть одна оговорка. Когда я ставлю более трех условий для точечного графика, он не хочет рисовать вертикальные отметки | --o-- | в конце строки ошибок.
Как предложил @Josh в комментариях, я вставил browser()
в первую строку функции, которая отображает обновленную panel.Dotplot
, чтобы увидеть, что идет не так, но ничего не помогло мне решить эту проблему. Вот пример кода для четырех условий Dotplot()
с обновленной функцией panel.Dotplot
, которая не работает. Это сработает, если вы уменьшите количество условий (проверьте ответ на вопрос, указанный выше):
require(Hmisc)
#Fake conditions
mean = c(1:18)
lo = mean-0.2
up = mean+0.2
name = c("a","b","c")
cond1 = c("A","B","C")
cond2 = c(rep("E1",9),rep("E2",9))
d = data.frame (name = rep(name,6), mean, lo, up,
cond1=rep(cond1,each=3,times=2), cond2)
# Create the customized panel function
mypanel.Dotplot <- function(x, y, ...) {
panel.Dotplot(x,y,...)
tips <- attr(x, "other")
panel.arrows(x0 = tips[,1], y0 = y,x1 = tips[,2],
y1 = y,length = 0.1, unit = "native",
angle = 90, code = 3)
}
#Draw Dotplot - `panel.Dotplot` doesn't change anything
setTrellis()
Dotplot(name ~ Cbind(mean,lo,up) | cond1 * cond2, data=d, ylab="", xlab="",col=1,
panel = mypanel.Dotplot)