2014-03-24 9 views
2

par 함수를 사용하여 여러 플롯을 결합하려고합니다. 플롯은 sjPlot 함수 sjp.likert()에 의해 생성됩니다.두 개의 sjp.likert (sjPlot 패키지에서) 생성 된 플롯을 하나의 플롯으로 결합하는 방법은 무엇입니까?

은 내가 sjPlot 패키지 자체에서 두 예 플롯을 사용하고 결합하려고 :

likert_2 <- data.frame(as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.3,0.7))), 
    as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.6,0.4))), 
    as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.25,0.75))), 
    as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.9,0.1))), 
    as.factor(sample(1:2, 500, replace=TRUE, prob=c(0.35,0.65)))) 
    levels_2 <- list(c("Disagree", "Agree")) 

likert_4 <- data.frame(as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.2,0.3,0.1,0.4))), 
    as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.5,0.25,0.15,0.1))), 
    as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.25,0.1,0.4,0.25))), 
    as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.1,0.4,0.4,0.1))), 
    as.factor(sample(1:4, 500, replace=TRUE, prob=c(0.35,0.25,0.15,0.25)))) 
    levels_4 <- list(c("Strongly disagree", "Disagree", "Agree", "Strongly Agree")) 
    items <- list(c("Q1", "Q2", "Q3", "Q4", "Q5")) 

par(mfrow=c(2,1)) 
    sjp.likert(likert_2, legendLabels=levels_2, axisLabels.y=items, orderBy="neg") 
    sjp.likert(likert_4, legendLabels=levels_4, axisLabels.y=items) 

결과는 R이 succeedingly 플롯을 보여주고 있다는 점이다. 누구든지 이러한 종류의 플롯을 올바르게 결합하는 방법을 알고 있습니까?

답변

4

sjp.likert은 기본 그래픽이 아닌 ggplot2-objects를 반환합니다.

따라서 par 이외의 다른 기능을 사용해야합니다.

예를 들어이 시도 :

p1 <- sjp.likert(likert_2, legendLabels=levels_2, axisLabels.y=items, orderBy="neg") 
p2 <- sjp.likert(likert_4, legendLabels=levels_4, axisLabels.y=items) 
require(gridExtra) 
require(grid) 
require(ggplot2) 
grid.arrange(p1$plot, p2$plot, nrow = 2) 
+0

덕분에, 내가 의도하지! – rdatasculptor