Boxplot liên quan đến hai yếu tố sử dụng ggplot2 trong R


13

Tôi rất mới với R và với bất kỳ gói nào trong R. Tôi đã xem tài liệu ggplot2 nhưng không thể tìm thấy. Tôi muốn một hộp biến số boxthisliên quan đến hai yếu tố f1f2. Đó là giả sử cả hai f1f2là biến nhân tố và mỗi biến có hai giá trị và boxthislà biến liên tục. Tôi muốn nhận 4 ô vuông trên một biểu đồ, mỗi ô tương ứng với một kết hợp từ các kết hợp có thể có f1f2có thể thực hiện. Tôi nghĩ rằng sử dụng các chức năng cơ bản trong R, điều này có thể được thực hiện bởi

> boxplot(boxthis ~ f1 * f2 , data = datasetname) 

Cảm ơn trước sự giúp đỡ nào.


Vui lòng cung cấp dữ liệu mẫu để có được câu trả lời chính xác.
mpiktas

2
Câu hỏi này gần như chắc chắn sẽ phù hợp hơn với stackoverflow.com, vì có rất ít thống kê cụ thể ở đây.
richiemorrisroe

Câu trả lời:


23

Tôi có thể nghĩ ra hai cách để thực hiện điều này:

1. Tạo tất cả các kết hợp trong f1f2ngoài ggplotchức năng

library(ggplot2)

df <- data.frame(f1=factor(rbinom(100, 1, 0.45), label=c("m","w")), 
                 f2=factor(rbinom(100, 1, 0.45), label=c("young","old")),
                 boxthis=rnorm(100))

df$f1f2 <- interaction(df$f1, df$f2)

ggplot(aes(y = boxthis, x = f1f2), data = df) + geom_boxplot()

nhập mô tả hình ảnh ở đây

2. sử dụng màu sắc / điền / vv.

ggplot(aes(y = boxthis, x = f2, fill = f1), data = df) + geom_boxplot()

nhập mô tả hình ảnh ở đây


4
(+1) Tôi thích việc sử dụng interaction(). Lưu ý, chúng tôi có thể chỉ định geom_boxplot(position = position_dodge(width = .9))để thêm không gian giữa các ô.
chl

1
Bạn cũng có thể sử dụng dodgeđối số trong ggplothàm -ggplot(aes(y = boxthis, x = f2, fill = f1, dodge=f1), data = df) + geom_boxplot()
Maciej

0

Đây là một cách khác:

ggplot(datasetname) + boxplot(aes(x=as.factor(f1),y=boxthis)) + facet_wrap(~as.factor(f2), nrow=5)

Cung cấp một cái gì đó như sau:

Mặt hộp hộp

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.