latex knitr chunk echo = FALSE нарушает настройку par ()

Я новичок в latex и knitr, и у меня проблема с выводом блока R, когда я использую echo = FALSE. Приведенный ниже код .Rnw работает так, как ожидалось, т.е. на выходе есть

    1. some code
    2. a block of figures arranged 2 x 3
    3. some more code
    4. a block of figures arranged 2 x 3

Однако изменение открытия фрагмента, чтобы исключить кодовый блок из вывода

<<bghist2_mas_rma, fig.height=4, fig.width=6, echo=FALSE>>=

не только удаляет код из вывода (хорошо), но и отменяет настройку par (), так что две цифры (каждая размером 2 x 3) размещаются на странице рядом, причем большая часть второй выпадает за край.

Как я могу обойти это, кроме простого вывода кода?

Благодарность

B

\newpage
<<bghist2_mas_rma, fig.height=4, fig.width=6, echo=TRUE>>=
par(mfrow=c(2,3))
for(i in 1:6){
    hist(bg.mas[,i], xlab="", las=1,
    main=paste(sep="", "bg.mas[, ",  i, "]"),
    xlim=c(-100, 300), breaks=10000)
}
par(mfrow=c(1,1))

par(mfrow=c(2,3))
for(i in 1:6){
    hist(bg.rma[,i], xlab="", las=1,
    main=paste(sep="", "bg.rma[, ",  i, "]"),
    xlim=c(-100, 300), breaks=10000)
}
par(mfrow=c(1,1))
@

person bobox    schedule 14.09.2012    source источник
comment
Помимо приведенного ниже ответа, я думаю, вы также можете использовать параметр фрагмента fig.align='center', чтобы две цифры были записаны в два абзаца и больше не располагались рядом.   -  person Yihui Xie    schedule 14.09.2012
comment
Спасибо Yihui, это тоже полезный совет на будущее. Как бы то ни было, я решил сделать каждый фрагмент сущностью с единой доставкой, поэтому эта проблема больше не должна возникать. Могу я сказать, что мне очень нравится вязать; это первые дни обучения R + RStudio + latex и т. д., но я впечатлен тем, чего можно достичь, и с нетерпением жду возможности узнать больше. Лучший   -  person bobox    schedule 16.09.2012


Ответы (1)


Самое простое решение - разбить их на отдельные части:

<<bghist2_mas_rma, fig.height=4, fig.width=6, echo=FALSE>>=
par(mfrow=c(2,3))
for(i in 1:6){
    hist(bg.mas[,i], xlab="", las=1,
    main=paste(sep="", "bg.mas[, ",  i, "]"),
    xlim=c(-100, 300), breaks=10000)
}
@

<<bghist2_mas_rma_2, fig.height=4, fig.width=6, echo=FALSE>>=
par(mfrow=c(2,3))
for(i in 1:6){
    hist(bg.rma[,i], xlab="", las=1,
    main=paste(sep="", "bg.rma[, ",  i, "]"),
    xlim=c(-100, 300), breaks=10000)
}
par(mfrow=c(1,1))
@
person David Robinson    schedule 14.09.2012