2014-11-13 26 views
6

Tôi có một vài vectơ khác nhau có độ dài khác nhau mà tôi muốn tạo các ô bên cạnh bằng ggplot2. Đây là tương đối thẳng về phía trước để làm với hệ thống âm mưu cơ sở. Tuy nhiên ggplot2 chỉ mất một khung dữ liệu duy nhất làm đầu vào, rất khó để tạo ra từ dữ liệu có độ dài khác nhau.ggplot2 - Nhiều ô mẫu từ các nguồn có độ dài khác nhau

a <- rnorm(10) 
b <- rnorm(100) 
c <- rnorm(1000) 
boxplot(a, b, c) 

Q: cách chính xác để vẽ boxplots sử dụng ggplot2 sử dụng dữ liệu có độ dài khác nhau là gì?


Trả lời

11

ggplot sử dụng gọn gàng khung dữ liệu lâu dài với nhóm (như a, b, hoặc c) lưu lại dưới dạng các cột riêng biệt. Trong ví dụ của bạn, bạn có thể tạo ra một khung dữ liệu với 1110 hàng (10 + 100 + 1000) và hai cột (giá trị và nhóm), như vậy:

# Make individual data frames 
a <- data.frame(group = "a", value = rnorm(10)) 
b <- data.frame(group = "b", value = rnorm(100)) 
c <- data.frame(group = "c", value = rnorm(1000)) 

# Combine into one long data frame 
plot.data <- rbind(a, b, c) 

# group  value 
# 1  a 0.2322682 
# 2  a -0.9681992 
# ... 
# 101 b 0.3422354 
# 102 b 0.3495342 
# ... 
# 1001 c -0.6839231 
# 1002 c -1.4329843 

# Plot 
library(ggplot2) 
ggplot(plot.data, aes(x=group, y=value, fill=group)) + geom_boxplot() 

Example boxplot

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