1. ホーム
  2. r

[解決済み] shinyアプリケーションでggplotオブジェクトをplotlyに変換する

2022-02-09 11:33:55

質問

ggplotオブジェクトをplotlyに変換し、shinyアプリケーションで表示しようとしています。しかし、エラー "no applicable method for 'plotly_build' applied to an object of class "NULL"" が発生しました。

ggplotオブジェクトをshinyアプリケーションに正常に返すことができました。

output$plot1 <- renderplot({
   gp <- ggplot(data = mtcars, aes(x = disp, y = cyl)) + geom_smooth(method = lm, formula = y~x) + geom_point() + theme_gdocs()
})

が、なぜかplotlyでは変換できない。

私のコードは次のようなものです。

output$plot2 <- renderplotly({
   gp <- ggplot(data = mtcars, aes(x = disp, y = cyl)) + geom_smooth(method = lm, formula = y~x) + geom_point() + theme_gdocs()
   ggplotly()
})

解決方法は?

試してみてください。

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)