--- title: "Interactive, annotatable, code-driven presentations" author: "Achintya Rao" date: "19 May 2017" output: revealjs::revealjs_presentation: theme: black highlight: pygments incremental: true center: true transition: slide reveal_options: slideNumber: true fig_caption: false --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) library(plotly) ```

The inspiration!

![D3 visualisations by Eamonn Maguire](images/d3.gif) ## D3.JS - Source: [Creating Visualizations with D3](http://antarctic-design.co.uk/biovis-workshop15/) - By: [Eamonn Maguire](https://github.com/eamonnmag) - … I don't know JavaScript…
---

Using R code in your presentation

## Example of some code ```{r cars} summary(mtcars) ``` ## Inline code So, `sqrt(81)*4*pi` becomes `r sqrt(81)*4*pi`. ## Import some data ```{r} I_jean <- read.delim("http://bit.ly/avml_ggplot2_data") head(I_jean) ``` - Source: [https://jofrhwld.github.io/avml2012/](https://jofrhwld.github.io/avml2012/) ## Static plots ```{r, echo=FALSE} p <- ggplot(mtcars, aes(x = factor(1), fill = factor(cyl))) + geom_bar(width = 0.8, position = "dodge", colour = "black") p ``` ## Interactive plots! ```{r, echo=FALSE, warning=FALSE} ggplotly(p) ``` ## Make more plots! ```{r, echo=FALSE, warning=FALSE} # Code from https://jofrhwld.github.io/avml2012/ # Taken as an example only under fair-use practice # All rights reserved by the original author p <- ggplot(I_jean, aes(x = Dur_msec, y = F1.n)) + geom_point() + stat_smooth(method="loess") + scale_x_log10(breaks = c(50, 100,200,300,400)) + scale_y_reverse() + ylab("Normalized F1") + xlab("Vowel duration (msec)") + theme_bw() + labs(title = "394 tokens of 'I' from one speaker") ggplotly(p) ```
---

Making a [reveal.js](http://lab.hakim.se/reveal-js/) presentation

## [R Markdown](http://rmarkdown.rstudio.com/) with embedded [R](https://www.r-project.org/) code - [Source](https://raw.githubusercontent.com/RaoOfPhysics/contained-revealr/master/index.Rmd) - Hosted on GitHub: [RaoOfPhysics/contained-revealr](https://github.com/RaoOfPhysics/contained-revealr) - Displayed using [GitHub Pages](https://pages.github.com/): [raoofphysics.github.io/contained-revealr](https://raoofphysics.github.io/contained-revealr) - Annotatable using [Hypothesis](https://hypothes.is): - Add `` ## The source file itself - Create a new `R Markdown` file named `index.Rmd` - Select reveal.js from templates - Add [YAML](http://www.yaml.org/) frontmatter! - Instructions for reveal.js presentations: [rmarkdown.rstudio.com/revealjs_presentation_format.html](http://rmarkdown.rstudio.com/revealjs_presentation_format.html) - Create sections and add content+code - Knit your presentation!
---

"But I hate / don't use R…"

## Other "engines" for code chunks | Language | In RMarkdown | Plotly available | |-----:|:-----:|:-----:| | Python | [Yes](http://rmarkdown.rstudio.com/authoring_knitr_engines.html#python) | [Yes](https://plot.ly/python/getting-started/) | | JavaScript | [Yes](http://rmarkdown.rstudio.com/authoring_knitr_engines.html#javascript) | [Yes](https://plot.ly/javascript/getting-started/) | | SQL | [Yes](http://rmarkdown.rstudio.com/authoring_knitr_engines.html#sql) | No | | Bash | [Yes](http://rmarkdown.rstudio.com/authoring_knitr_engines.html#bash) | No | More: http://rmarkdown.rstudio.com/authoring_knitr_engines.html
---

"But I don't want to install R and its packages…"

## [RStudio](https://www.rstudio.com/) via [Docker](https://www.docker.com/) ![RStudio via Docker](images/rstudio.png) ## Using RStudio in your browser - **Caveat!** Non-R engines don't work out of the box - Create a directory for your project - Add this [`Dockerfile`](https://github.com/RaoOfPhysics/contained-revealr/blob/master/Dockerfile) and this [`docker-compose.yml`](https://github.com/RaoOfPhysics/contained-revealr/blob/master/docker-compose.yml) to the directory - Run `$ docker-compose up -d` - Open RStudio in your browser at `localhost:8787` or `0.0.0.0:8787` - Log in with "`rstudio`" as both the username and password - To shutdown: `$ docker-compose down`
---

Other kinds of output

## [HTML](https://raoofphysics.github.io/contained-revealr/examples/html.html) ![HTML](images/html.gif) ## [PDF](https://raoofphysics.github.io/contained-revealr/examples/pdf.pdf) ![PDF](images/pdf.gif) ## [Bookdown](https://raoofphysics.github.io/contained-revealr/examples/bookdown-example.html) ![Bookdown](images/bookdown.gif) ## [R Notebooks](https://raoofphysics.github.io/contained-revealr/examples/notebook.nb.html) ![R Notebook](images/rnotebook.gif)
---

Questions?