Convert ggplot object to plotly in shiny application
21,244
Solution 1
Try:
library(shiny)
library(ggplot2)
library(ggthemes)
library(plotly)
ui <- fluidPage(
titlePanel("Plotly"),
sidebarLayout(
sidebarPanel(),
mainPanel(
plotlyOutput("plot2"))))
server <- function(input, output) {
output$plot2 <- renderPlotly({
ggplotly(
ggplot(data = mtcars, aes(x = disp, y = cyl)) +
geom_smooth(method = lm, formula = y~x) +
geom_point() +
theme_gdocs())
})
}
shinyApp(ui, server)
Solution 2
If it is rendering in the RStudio pane instead of the app, do make sure that you are using plotlyOutput
in the UI section as well as renderPlotly
in the server section.
Author by
athlonshi
Updated on April 23, 2021Comments
-
athlonshi about 3 years
I am trying to convert a ggplot object to plotly and show it in a shiny application. But I encountered an error "no applicable method for 'plotly_build' applied to an object of class "NULL""
I was able to return the ggplot object to the shiny application successfully,
output$plot1 <- renderplot({ gp <- ggplot(data = mtcars, aes(x = disp, y = cyl)) + geom_smooth(method = lm, formula = y~x) + geom_point() + theme_gdocs() })
but somehow plotly cannot convert it.
My code looks like this
output$plot2 <- renderplotly({ gp <- ggplot(data = mtcars, aes(x = disp, y = cyl)) + geom_smooth(method = lm, formula = y~x) + geom_point() + theme_gdocs() ggplotly() })