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

时间:2017-10-19 08:33:27

标签: r plot 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?")
@

1 个答案:

答案 0 :(得分:1)

我不是试图将子图组合在一起,而是在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")
@