2013-07-23 16 views
5

Tôi đang vật lộn với việc tạo biểu đồ tỷ lệ biến trên một yếu tố trong ggplot.Trong ggplot2, làm thế nào tôi có thể tạo biểu đồ thanh tỷ lệ giữa các thừa số (và thêm các thanh lỗi)?

Lấy mtcars dữ liệu làm ví dụ và ăn cắp một phần của một giải pháp từ this question tôi có thể đưa ra

ggplot(mtcars, aes(x = as.factor(cyl))) + 
    geom_bar(aes(y = (..count..)/sum(..count..))) + 
    scale_y_continuous(labels = percent_format()) 

Biểu đồ này mang lại cho tôi tỷ lệ của từng loại cyl trên phạm vi toàn bộ dữ liệu.

Điều tôi muốn làm là tỷ lệ ô tô trong mỗi loại cyl, có hộp số tự động (biến nhị phân am).

Trên đầu mỗi thanh tôi muốn thêm thanh lỗi cho tỷ lệ.

Chỉ có thể thực hiện điều đó với chỉ ggplot? Hay trước tiên tôi phải chuẩn bị một khung dữ liệu với tóm tắt và sử dụng nó với tùy chọn identity biểu đồ thanh?

Tôi đã tìm thấy một số ví dụ trên trang web Cookbook for R, nhưng chúng xử lý với biến y liên tục.

Trả lời

6

Tôi nghĩ rằng việc tạo khung dữ liệu mới sẽ dễ dàng hơn và sau đó sử dụng nó để vẽ đồ thị. Ở đây tôi tính tỷ lệ và giá trị khoảng tin cậy thấp hơn/trên (lấy chúng từ kết quả prop.test()).

library(plyr) 
mt.new<-ddply(mtcars,.(cyl),summarise, 
     prop=sum(am)/length(am), 
     low=prop.test(sum(am),length(am))$conf.int[1], 
     upper=prop.test(sum(am),length(am))$conf.int[2]) 

ggplot(mt.new,aes(as.factor(cyl),y=prop,ymin=low,ymax=upper))+ 
    geom_bar(stat="identity")+ 
    geom_errorbar() 
+0

Cảm ơn rất nhiều. Làm việc như một sự quyến rũ! – radek

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