Как изменить варианты вязальства Mid Chank
Вопрос
Привет, я хотел бы изменить варианты куска, средний кусок, без необходимости создавать новый кусок ..
Запуск следующего кода, который я ожидал получить два очень разных выхода размера, но по какой-то причине это не так, кажется, не так.
Также второй график не участвует вообще ... (это делает, когда вы меняете его на сюжет (2: 1000) ... Но в любом случае второй выход - это тот же размер, что и первый. Оба fig.width=7
.Что я делаю не так?
Пожалуйста, обратите внимание на важность «середина кусочки» Причина этого состоит в том, что я хотел бы изменить параметры кусочки в несколько раз при запуске функции для получения различных выходов разных размеров.
```{r}
sessionInfo()
opts_chunk$set(fig.width=3)
plot(1:1000)
opts_chunk$set(fig.width=10)
plot(1:1000)
```
.
Выход SESSESINFO выглядит следующим образом:
## R version 2.15.1 (2012-06-22)
## Platform: i386-pc-mingw32/i386 (32-bit)
##
## locale:
## [1] LC_COLLATE=English_United Kingdom.1252
## [2] LC_CTYPE=English_United Kingdom.1252
## [3] LC_MONETARY=English_United Kingdom.1252
## [4] LC_NUMERIC=C
## [5] LC_TIME=English_United Kingdom.1252
##
## attached base packages:
## [1] stats graphics grDevices datasets utils methods base
##
## other attached packages:
## [1] knitr_0.7
##
## loaded via a namespace (and not attached):
## [1] digest_0.5.2 evaluate_0.4.2 formatR_0.5 parser_0.0-16
## [5] plyr_1.7.1 Rcpp_0.9.13 stringr_0.6 tools_2.15.1
.
Решение
Два вопроса: когда вы хотите, чтобы обе фигуры были сохранены, используйте
```{r fig.keep='all'}
.
по умолчанию сохраняет только уникальные участки (потому что ваши два участка идентичны, второй удален; см.
Другие советы
Это работает для меня, основана на подсказках от Yui на Github.
\documentclass{article}
\begin{document}
<<setup,echo=FALSE>>=
opts_knit$set(progress = F, verbose = F)
opts_chunk$set(comment=NA, warning=FALSE,message=FALSE,fig.width=6, echo=F)
kexpand=function(){
cat(knit(
text=knit_expand(text=
"<<yfig-{{cap}}-,fig.cap='{{cap}}',results='markup',echo=FALSE,fig.height={{figheight}},out.height={{outheight}}>>=\n
.q\n
@"
)
))}
@
<<results='asis'>>=
library(ggplot2)
.q=qplot(1:10);cap="first caption";figheight=9;outheight=90
kexpand()
.q=qplot(1:20);cap="second caption";figheight=12;outheight=160
kexpand()
@
\end{document}
.
Таким образом, одна ключевая вещь - установить прогресс и Verbose, в противном случае они уничтожают выходные данные.Затем небольшая функция KEXPAND расширяет встроенный шаблон, который печатается как текст как часть функции. Затем вы можете определить свой участок как .Q и вашу подпись как CAP, а также высоты и т. Д. Вы можете адаптировать функцию для управления другими параметрами. Странно, .Q и подписи не должны быть параметрами для функции, вы можете просто установить их в текущей среде, и они в любом случае получают функцию.Не знаю, является ли это хорошая практика или почему он работает, но это делает.