2012-06-11 6 views
1

저울은 0-100의 척도에서 LOW, MEDIUM, HIGH 및 연속 변수 CV의 척도로 측정 된 두 개의 질적 변수 (Q1, Q2)가있는 데이터 프레임이 있습니다. .ggplot (패싯)의 인자 별 다중 플롯

s = 5 
trial <- data.frame(id = c(1:s), 
       Q1 = ordered(sample(c("LOW","MED","HIGH"),size=s,replace=T)), 
       Q2 = ordered(sample(c("LOW","MED","HIGH"),size=s,replace=T)), 
       CV = runif(s,0,100)) 

I은 ​​각 레벨 (X3)에 대한 각각의 질적 변수 (X2)에 연속 변수의 각면 플롯 (바람직 수평 박스 플롯/지터)을 보여 ggplot을 사용할 필요가있다. 이렇게하면 3 x 2 레이아웃이됩니다.

나는 ggplot에 대해 매우 새로운 것으로서 나는 이것이 어떻게 달성되어야하는지 확신 할 수 없다. 나는 qplot을 가지고 놀았으며 같은 차트에 Q1과 Q2 박스 플롯을 모두 표시하도록 패싯을 제어하는 ​​방법을 알아낼 수 없습니다 !!

같은 창에 여러 개의 qplot을 실행해야합니까 (기본적으로 par를 사용하여 레이아웃을 제어 할 수 있습니다) 또는 단일 명령으로 달성 할 수 있습니까? 아니면 데이터를 두 번 녹여야합니까?

trial = rbind(data.frame(Q = "Q1",Level = trial[,2], CV = trial[,4]), 
      data.frame(Q = "Q2",Level = trial[,3], CV = trial[,4])) 

나는 계속 노력하고 누군가가 그 동안 몇 가지 힌트를 제공 할 수 있기를 바랍니다.

+1

은 완전히 당신이 – Sean

답변

1

나는 당신이 원하는에 완전히 명확하지 않다,하지만 어쩌면이 도움이 :

ggplot(trial, aes(Level, CV)) + 
    geom_boxplot() + 
    geom_jitter() + 
    facet_wrap(~Q) + 
    coord_flip() 
+0

이 찾고있는 것은 덕분에, 많은 명확한데도 도움이된다. 수퍼 솔루션, ggplot에 대해 배울 점이 많습니다! –

+1

. 자연 순서로 HIGH, MED, LOW를 얻으려면 해당 변수를 숫자로 변경 한 다음 scale_y_discrete (레이블 = c ('HIGH', 'MED', 'LOW')로 플롯에 레이블을 추가하는 것이 좋습니다.) –

+2

@MattWeller +1, 이것은 당신이 요구 한 것을 얻는 것처럼 보이지만, 패싯 대신 채우기 색을 사용하는 것을 고려할 수도 있습니다 ... 'facet_wrap' 호출없이 위 코드를 사용하고'fill = Q'를 'aes' 호출. – Gregor