2015-01-17 97 views
6

Sto provando a creare una diapositiva Presentazione Beamer in RMarkdown/Knitr. Nella diapositiva mi piacerebbe avere un tavolo e una figura messi uno accanto all'altro, e poi un altro testo sotto. Posso arrivare solo al mio tentativo come mostrato nel codice. Mi piacerebbe avere la trama densità posizionata, accanto alla tabella Hmisc.Tabelle e figure affiancate in Knitr o RMarkdown Beamer

Non sto usando Kable o xtable poiché ho più controllo sui tavoli con Hmisc.

Inoltre, come è possibile regolare le caratteristiche del testo (dimensione carattere, tipo, colore) nelle singole diapositive?

--- 
title: "BeamerTest1" 
subtitle: Beamer Subtitle 
author: "Author" 

output: 
    beamer_presentation: 
    theme: CambridgeUS 
    colortheme: "beaver" 
    fonttheme: "structurebold" 
--- 

## Slide with Table, Figure and Text 

My topic for this slide 

\scalebox{0.35}{ 
```{r hmisc-table, echo=FALSE, message=FALSE, results='asis'} 
library(Hmisc) 
latex(head(mtcars), file='', table.env=FALSE, center='none') 
``` 
} 


```{r, echo=FALSE, fig.show='hold', fig.height=1, fig.width=2.5} 
library(ggplot2) 
mt <- ggplot(mtcars, aes(mpg)) + geom_density(alpha=.2, fill="#FF6666") + 
    theme(axis.title.x = element_text(size=10),axis.text.x = element_text(size=8), 
     axis.title.y = element_text(size=10),axis.text.y = element_text(size=8)) 
mt 
``` 

- Here is some Bullet Text 
- And some more 
    - Subtext 
    - More Subtext 

Grazie

risposta

1

Penso che si desidera impostare l'opzione pezzo fig.align=right come descritto here

+0

Grazie Jthorpe, ma questo non risolve il problema. Sposta la figura a destra ma è ancora un _level sotto_ la tabella, non importa quanto ridimensiono la figura o la tabella. – SGH

+0

Forse la risposta in fondo alla pagina [this] (http://tex.stackexchange.com/questions/83361/two-column-layout-with-text-and-knitr-chunk) aiuterà. – Jthorpe

1

Considerare l'utilizzo di un layout a due colonne, come si dovrebbe fare se si stesse facendo questo direttamente a Beamer . Vedi ad esempio:

  • this question su questo facendo con gli strumenti disponibili con RStudio. (Si noti che questa è un'area in cui RStudio e il pacchetto RMarkdown si sono evoluti molto recentemente e la domanda è un po 'datata, ma fa riferimento alle funzionalità ora disponibili.)
  • this question per una soluzione con Inline LaTeX e Pandoc. (Questo funzionerà anche con RStudio poiché le versioni più recenti utilizzano una copia in bundle di pandoc come motore Markdown.)
  • this post on the pandoc mailing list discutendo su come includere Markdown all'interno dei blocchi LaTeX, ad es. i comandi/ambienti di Beamer per le colonne.
  • this question on TeX Stack Exchange potrebbe aiutarti, ma è necessario adattarlo un po 'a RMarkdown (la domanda utilizza la sintassi di tipo Sweave per incorporare R in LaTeX con knitr).

L'idea di base per il tuo problema sarebbe un layout a due colonne per la parte superiore della diapositiva e un layout a una colonna per la parte inferiore. Quindi metti i singoli blocchi di codice R nella loro colonna. (Potrebbe essere necessario giocare con spaziatura verticale se le due cifre differiscono nelle dimensioni.)

Il formato Rpres è tutto-o-niente sui layout di colonna per una determinata diapositiva (almeno l'ultima volta che ho controllato), quindi quella soluzione sarebbe meno che ideale quando si desidera che la parte inferiore della diapositiva sia una singola "colonna".

Un'altra soluzione sarebbe combinare le due figure in una e quindi visualizzare la figura unita. Non sono sicuro di come si farebbe con un tavolo e un grafico, ma per due elementi grafici, è possibile utilizzare il pacchetto gridExtra per posizionare due lattice o ggplot2 (o anche una miscela empia di entrambi) uno accanto all'altro in un unico grid e quindi in una singola figura combinata.

0

Ci sono stati issue con due colonne nella presentazione del proiettore. Ma nello stesso posto c'è soluzione:

In breve: Errore è legata al motore di conversione Pandoc, che tratta tutto tra \begin{...} e \end{...} come TeX. Può essere evitato dando una nuova definizione per begin{column} e end{column} nell'intestazione di yaml.

Creare mystyle.tex e scrivere lì:

\def\begincols{\begin{columns}} 
\def\begincol{\begin{column}} 
\def\endcol{\end{column}} 
\def\endcols{\end{columns}} 

Nel file Rmd utilizzare queste nuove definizioni

--- 
output: 
    beamer_presentation: 
    includes: 
     in_header: mystyle.tex 
--- 


Two Column Layout 
------- 

\begincols 
    \begincol{.48\textwidth} 

This slide has two columns. 

    \endcol 
\begincol{.48\textwidth} 

```{r} 
#No error here i can run any r code 
plot(cars) 
``` 

    \endcol 
\endcols 

E si ottiene:

enter image description here

Problemi correlati