R - 使用 Sweave 在 2x2 图中绘制 4 个图

R - 4 plots in 2x2 plot using Sweave

我想在一个 2x2 的绘图中粘贴四个绘图以适合单个页面。我正在使用 Sweave 包通过 Latex 生成 PDF。

这是我的代码,但是,它将每个图生成到一个页面。

<<plot1, fig=TRUE, echo=FALSE>>=
slices <- c(3, 1,1)
lbls <- c("Bien", "Regular", "Mal")
pie(slices, labels = lbls, main="¿Cómo te está sentando la medicación?")
@

<<plot2, fig=TRUE, echo=FALSE>>=
slices <- c(2, 2,1)
lbls <- c("Si", "Puedo mejorarla", "No")
pie(slices, labels = lbls, main="¿Estás llevando una alimentación adecuada?")
@

<<plot3, fig=TRUE, echo=FALSE>>=
slices <- c(1, 1,3)
lbls <- c("Si", "Puedo hacer más", "No")
pie(slices, labels = lbls, main="¿Realizas suficiente ejercicio físico?")
@

<<plot4, fig=TRUE, echo=FALSE>>=
slices <- c(3, 3, 1,4,1)
lbls <- c("Contento", "Tranquilo", "Enfadado", "Bien", "Nervioso", "Deprimido")
pie(slices, labels = lbls, main="¿Cómo te has sentido anímicamente esta semana?")
@

我不会尝试将子图组合在一起,而是在 Sweave 中创建一个图,使用 par 将 R 中的图组合起来,并为文本引用添加子图字母。例如:

<<plot1, fig=TRUE, echo=FALSE>>=
par(mfrow = c(2,2))

slices <- c(3, 1,1)
lbls <- c("Bien", "Regular", "Mal")
pie(slices, labels = lbls, main="¿Cómo te está sentando la medicación?")
legend("topleft", letters[1], bty = "n")

slices <- c(2, 2,1)
lbls <- c("Si", "Puedo mejorarla", "No")
pie(slices, labels = lbls, main="¿Estás llevando una alimentación adecuada?")
legend("topleft", letters[2], bty = "n")

slices <- c(1, 1,3)
lbls <- c("Si", "Puedo hacer más", "No")
pie(slices, labels = lbls, main="¿Realizas suficiente ejercicio físico?")
legend("topleft", letters[3], bty = "n")

slices <- c(3, 3, 1,4,1)
lbls <- c("Contento", "Tranquilo", "Enfadado", "Bien", "Nervioso", "Deprimido")
pie(slices, labels = lbls, main="¿Cómo te has sentido anímicamente esta semana?")
legend("topleft", letters[4], bty = "n")
@