2014-11-13 4 views
6

ggplot2를 사용하여 여러 개의 사이드 플롯을 생성하고자하는 다양한 길이의 벡터가 있습니다. 이는베이스 플롯팅 시스템에 비해 상대적으로 간단합니다. 그러나 ggplot2는 단일 데이터 프레임을 입력으로 사용하기 때문에 다양한 길이의 데이터로 생성하기가 어렵습니다.ggplot2 - 길이가 다른 소스의 다중 박스 플롯

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

Q : 다양한 길이의 데이터를 사용하여 ggplot2 사용 상자 그림을 그릴 수있는 올바른 방법은 무엇입니까?


답변

11

ggplot은 (a, b 또는 c와 같은) 그룹이 깔끔한 긴 데이터 프레임을 별도의 열로 저장합니다. 당신의 예에서, 당신은과 같이, 1110 행 (+ 1,000 10 + 100)과 두 개의 열 (가치와 그룹)과 데이터 프레임을 만들 수 있습니다

# 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