To pytanie jest nieoczekiwaną kontynuacją od Draw vertical ending of error bar line in dotplot. Podczas gdy przytoczone pytanie zostało pomyślnie rozwiązane - jest pewne zastrzeżenie. Kiedy wprowadzam więcej niż trzy warunki do dotplot, nie chcę narysować pionowych tyknięć | --o-- | w końcówkach słupków błędów.Znaczniki paska błędu | --o-- | nie rysuj dla więcej niż trzech warunków w dotplot
Jak @Josh sugerowane w komentarzach, że wstrzykuje browser()
do pierwszej linii funkcji, które przyciąga zaktualizowanej panel.Dotplot
aby zobaczyć, co idzie źle, ale to nie wyjdzie ze wszystkiego, co pomaga mi go rozwiązać. Oto przykładowy kod dla czterech warunków Dotplot()
ze zaktualizowaną funkcją panel.Dotplot
, która nie działa. Będzie działać, jeśli zmniejszy liczbę warunków (sprawdź odpowiedź na pytanie, cytowany powyżej):
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)
Teraz mam całą historię, Pozdrawiam @jbaums! Cleveland byłby z nas dumny ;-) –