Error bar ticks |--o--| don't draw for more than three conditions in dotplot

Этот вопрос является неожиданным продолжением вопроса Нарисовать вертикальное окончание штриховой линии ошибки в dotplot. Хотя процитированный вопрос был успешно решен, есть одна оговорка. Когда я ввожу в dotplot более трех условий, он не хочет рисовать вертикальные тики |--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)

enter image description here

5
задан Community 23 May 2017 в 12:01
поделиться