2016-09-01 13 views
6

Mục tiêu của tôi là tạo ô trong R (không phải với ggplot2, nhưng đó là những gì tôi đang sử dụng bây giờ) giống như ví dụ này mà tôi tìm thấy ở đâu đó (trừ các văn bản):Xóa điểm cuối khỏi thanh lỗi trong ggplot2

boxplot-example

Dưới đây là đoạn code tôi có cho đến nay:

dat <- read.table(file = "https://www.dropbox.com/s/b59b03rc8erea5d/dat.txt?dl=1", header = TRUE, sep = " ") 
library(ggplot2) 
p <- ggplot(dat, aes(x = Subscale, y = Score, fill = Class)) 
p + stat_boxplot(geom = "errorbar", width = 1.2, size = 2.5, color = "#0077B3") + 
    geom_boxplot(outlier.shape = NA, coef = 0, position = position_dodge(.9)) + 
    scale_fill_manual(values = c("#66CCFF", "#E6E6E6")) + 
    theme(panel.background = element_rect(fill = "white", color = "white")) 

mà kết quả trong:

my-boxplot Rõ ràng có rất nhiều sự khác biệt giữa những gì tôi có và những gì ví dụ cho thấy, nhưng bây giờ tôi chỉ tập trung vào việc loại bỏ các điểm cuối khỏi các thanh lỗi, theo đó tôi có nghĩa là các phần trên và dưới được tạo bởi hàm stat_boxplot. Có ai biết cách tôi có thể có được hiệu quả mong muốn không?

Trả lời

5

width trong các errorbar geom điều khiển chiều rộng của các thanh ngang, vì vậy hãy đặt điều đó thành 0 để xóa các thanh cuối. Bạn đang thiếu các dodging trong lớp stat_boxplot, vì vậy bạn có thể thêm vào để có được các thanh lỗi né tránh một cách chính xác.

ggplot(dat, aes(x = Subscale, y = Score, fill = Class)) + 
    stat_boxplot(geom = "errorbar", width = 0, size = 2.5, 
       color = "#0077B3", position = position_dodge(.9)) + 
    geom_boxplot(outlier.shape = NA, coef = 0, position = position_dodge(.9)) + 
    scale_fill_manual(values = c("#66CCFF", "#E6E6E6")) + 
    theme(panel.background = element_rect(fill = "white", color = "white")) 

enter image description here

+0

Wow, tôi không nghĩ rằng nó sẽ được dễ dàng! Cảm ơn bạn rất nhiều! Tôi nghĩ rằng tài sản chiều rộng đã làm điều gì đó hoàn toàn khác. – psychometriko

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