2012-02-28 24 views
5

Câu hỏi này là một sự theo dõi bất ngờ từ Draw vertical ending of error bar line in dotplot. Mặc dù câu hỏi được trích dẫn đã được giải quyết thành công - có một cảnh báo trước. Khi tôi giới thiệu nhiều hơn thì ba điều kiện để dotplot nó không muốn vẽ ve thẳng đứng | --o-- | trong phần cuối của các thanh lỗi.Lỗi trên thanh lỗi | --o-- | không vẽ nhiều hơn ba điều kiện trong dotplot

Khi @Josh đề xuất trong các nhận xét, tôi đã tiêm browser() vào dòng đầu tiên của chức năng được cập nhật panel.Dotplot để xem điều gì sai, nhưng nó không xuất hiện với bất kỳ thứ gì giúp tôi giải quyết. Dưới đây là một mã ví dụ cho bốn điều kiện Dotplot() với chức năng cập nhật panel.Dotplot không hoạt động. Nó sẽ làm việc, nếu bạn giảm số điều kiện (câu trả lời kiểm tra cho câu hỏi trích dẫn ở trên):

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

Trả lời

5

Lỗi thanh là trên thực tế được trả lại, nhưng không nhìn thấy được do của họ rất ngắn chiều dài (± 0,2 đơn vị). Tăng lỗi để ± 1 kết quả trong những điều sau đây (Tôi cũng tăng length quy định tại panel.arrows - tức là độ dài lỗi thanh cap - 0,5):

lattice error bars

Nếu dữ liệu thực sự của bạn là rất chính xác tương đối với phạm vi giá trị x thì bạn có thể muốn xem xét các điểm nhỏ hơn (vì vậy chúng không dễ bị che khuất các thanh lỗi) hoặc bố cục phóng đại trục x. Ví dụ, sau đây sử dụng lỗi ban đầu của bạn là ± 0,2 đơn vị, và bạn mũi tên nắp gốc 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

+0

Bây giờ tôi nhận được toàn bộ câu chuyện, cheers @jbaums! Cleveland sẽ tự hào về chúng tôi ;-) –

Các vấn đề liên quan