Domanda

ciao vorrei cambiare le opzioni del blocco, metà pezzo, senza dover creare un nuovo chunk ..

Esecuzione del seguente codice che mi aspetterei di ottenere due uscite di dimensioni molto diverse, ma per qualche motivo questo non sembra essere il caso.

Anche la seconda trama non traccia affatto ... (fa quando lo modifichi in Plot (2: 1000) ... ma in entrambi i casi la seconda uscita ha la stessa dimensione del primo. Entrambi fig.width=7.Cosa sto facendo male?

Pls Nota l'importanza del "pezzo medio" il motivo per questo è che vorrei cambiare le opzioni chunk più volte quando si esegue una funzione per ottenere diverse uscite di diverse dimensioni.

```{r}
sessionInfo()

opts_chunk$set(fig.width=3)

plot(1:1000)

opts_chunk$set(fig.width=10)

plot(1:1000)

```
.

L'output SessionInfo è il seguente:

## 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  
.

Anteprima HTML

È stato utile?

Soluzione

Due domande: quando vuoi che sia le figure da tenere, utilizzare

```{r fig.keep='all'}
.

L'impostazione predefinita mantiene solo i grafici univoci (perché i tuoi due grafici sono identici, il secondo viene rimosso; vedere il Manuale grafica KnitrR per i dettagli).

Le opzioni del chunk globali sono attive quando il prossimo blocco (i) aperto:

```{r}
opts_chunk$set(fig.width=10)
```


```{r}
opts_chunk$set(fig.width=2)
# Our figure is 10 wide, not 2
plot(1:1000)
```

```{r}
# Our figure is 2 wide, not 10
opts_chunk$set(fig.width=10)
plot(1:1000)
```
.

Altri suggerimenti

Funziona per me, in base a suggerimenti da YUI su 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}
.

Quindi una cosa chiave è impostare il progresso e verboso per F altrimenti distruggono l'output.Quindi la piccola funzione KexPand espande un modello in linea che viene digitato come testo come parte della funzione. Quindi puoi definire la tua trama come .Q e la tua didascalia come cappuccio, e le tue altezze, ecc. È possibile adattare la funzione per controllare altre opzioni. Stranamente, .Q e la didascalia non devono essere parametri per la funzione, è possibile impostarli nell'ambiente corrente e vengono presentati comunque la funzione.Non so se questa è una buona pratica o perché funziona ma lo fa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top