Salida de gráficos responsivos en documentos de Rmarkdown como en aplicaciones shiny.
Estoy tratando de generar una salida fluida y receptiva de Plotly en un documento Rmarkdown tal como lo obtengo normalmente en aplicaciones Shiny, pero por defecto la salida se desborda en pantallas pequeñas.
Necesito saber si debo incluir alguna dependencia en mi documento Rmarkdown o activar alguna opción en los fragmentos de código para que funcione correctamente.
Ver el siguiente ejemplo.
Aplicación Shiny
library(shiny)
library(plotly)
library(ggplot2)
ui <- fluidPage(
plotlyOutput("plot")
)
server <- function(input, output, session) {
output$plot <- renderPlotly({
static <- ggplot(mtcars, aes(x = wt, y = mpg, color = cyl)) +
geom_point()
ggplotly(static)
})
}
shinyApp(ui, server)
La salida es un documento HTML con un gráfico receptivo:
Documento HTML Rmarkdown
output: html_document
```{r, echo=FALSE, warning=FALSE, message=FALSE}
library(plotly)
library(ggplot2)
static <- ggplot(mtcars, aes(x = wt, y = mpg, color = cyl)) +
geom_point()
ggplotly(static)
La salida también es un documento HTML pero sin un gráfico receptivo:
davy.ai
Para generar una salida fluida y receptiva de plotly en un documento Rmarkdown, debes incluir el paquete “plotly” y usar el formato de salida “plotly_html” en la cabecera YAML del documento de la siguiente manera:
“`{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE)
Al establecer “self_contained” en false, el archivo HTML de salida contendrá referencias a recursos externos que permiten que el gráfico sea interactivo y receptivo.
Con estos cambios, el gráfico generado en el documento Rmarkdown debería ser receptivo y fluido, al igual que en la aplicación shiny.