2016-08-19 9 views
10

Jak dołączyć spiskowany wykres w pliku Rpres? Jeśli zrobisz to tak jak w zwykłym pliku RMDJak uwzględnić sprytnie w R Studio Presentations (Rpres)

Basic Plot 
======================================================== 
```{r, echo=FALSE} 
library(plotly) 
plot_ly(economics, x = date, y = unemploy/pop) 
``` 

Wynik wygląda następująco: Error in file(con, "rb") : cannot open the connection

roztworze wymyśliłem, która wykorzystuje możliwości, że Markdown może zawierać HTML:

Basic Plot 
======================================================== 
```{r, results='hide', echo=FALSE} 
library(plotly) 
p = plot_ly(economics, x = date, y = unemploy/pop) 
htmlwidgets::saveWidget(as.widget(p), file = "demo.html") 
``` 
<iframe src="demo.html" style="position:absolute;height:100%;width:100%"></iframe> 

Ale mam nadzieję na bardziej eleganckie rozwiązanie, które nie będzie używać żadnych dodatkowych plików.

+0

Ładne obejście, dzięki. Alternatywnie, sprytnie działa dobrze z ioslides renderowane z Rmarkdown. –

+0

@Antoine Czy możesz rozwinąć trochę w tym przepływie pracy? –

+0

Dodałem minimalny przykład, jak to zrobić jako odpowiedź poniżej. Daj mi znać, jeśli nie to masz na myśli. –

Odpowiedz

2

Poniżej znajduje się minimalny przykład, jak dołączyć wykres plot_ly do prezentacji ioslides, więc nie odpowiada on na pytanie Rpres, ale zapewnia alternatywę.

Pierwszy slajd wyświetla wykres przekształcony z ggplota na działka_pl, zachowując styl ggplot. Drugi slajd wyświetla wykres bezpośrednio na działce.

--- 
title: "Plot_ly demo" 
date: "8 December 2016" 
output: ioslides_presentation 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = FALSE) 
``` 

## A simple plot_ly 

```{r, fig.align='center', message = FALSE} 
library(plotly) 

df <- data.frame(x = 1:10, y = (1:10)^2) 

p <- ggplot(df, aes(x = x, y = y)) + geom_line() + labs(x = "X", y = "Y", title = "X and Y") 

ggplotly(p) 
``` 

## Another simple plot_ly 

```{r, echo = FALSE, fig.align = 'center', message = FALSE} 
plot_ly(df, x = x, y = y) 
``` 
Powiązane problemy