es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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: enter image description here

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: enter image description here

Tags:  , , , ,

Answer

  1. Avatar for 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)



    --- title: "Mi gráfico receptivo" author: "Juan Pérez" output: plotly::plotly_html: self_contained: false --- ```{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)

    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.

Comments are closed.