Convert ggplot object to plotly in shiny application

落爺英雄遲暮 提交于 2019-11-27 14:53:48

问题


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()
})

回答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({
print(
  ggplotly(
    ggplot(data = mtcars, aes(x = disp, y = cyl)) + geom_smooth(method = 
                      lm, formula = y~x) + geom_point() + theme_gdocs()))

})
}

shinyApp(ui, server)



回答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.



来源:https://stackoverflow.com/questions/37663854/convert-ggplot-object-to-plotly-in-shiny-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!