繁体   English   中英

如何在一个图中将两个sjp.likert(来自sjPlot包)生成的图合并?

[英]How to combine two sjp.likert (from the sjPlot package) generated plots in one plot?

我正在尝试使用par函数合并多个图。 这些图由sjPlot函数sjp.likert()生成。

我使用了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连续显示图。 有谁知道如何正确组合这些图?

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM