Галочки панели ошибок | --o-- |не рисовать более трех условий в дотплоте - PullRequest
5 голосов
/ 29 февраля 2012

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

1 Ответ

5 голосов
/ 29 февраля 2012

Строки ошибок фактически отображаются, но не видны из-за их очень короткой длины (± 0,2 единицы).Увеличение ошибки до ± 1 приводит к следующему (я также увеличил значение length, указанное в panel.arrows, т. Е. Длину заглушки для строки ошибок, до 0,5):

lattice error bars

Если ваши истинные данные настолько точны относительно диапазона значений x, то вам может потребоваться рассмотреть более мелкие точки (чтобы они не были настолько склонны скрывать полосы ошибок) или макет, который преувеличивает ось x.Например, в следующем примере используется исходная ошибка в ± 0,2 единицы, а исходный колпачок стрелки length равен 0,1:

Dotplot(name ~ Cbind(mean,lo,up) | cond1 * cond2, data=d, ylab="", xlab="",
  col=1, panel = mypanel.Dotplot, pch=20, cex=0.4, layout=c(1, 6), strip=FALSE,
  strip.left=strip.custom(par.strip.text=list(cex=0.75), bg=0, fg=0))

lattice precise error bars

...