问题
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