【问题标题】:Plotly with ShinyApp?与 ShinyApp 密谋?
【发布时间】:2020-09-05 23:16:59
【问题描述】:

编辑:已解决。

我不确定问题出在哪里,但我猜是关于 Rstudio。 当我将应用程序上传到 https://shinyapps.io/ 时,它可以工作了!

我正在尝试使用 shinyapp 渲染一个有情节的对象,

我在网上阅读了很多查询,其中大部分是关于使用“renderPlotly”而不是“renderPlot”,但不知何故我的情节没有显示。

当我尝试使用 ggplot 时,效果很好。

我做错了什么?

感谢您的帮助,附上代码:

library("shiny")
library("plotly")
library("shinydashboard")

ui <- dashboardPage(dashboardHeader(title = "Basic dashboard"), 
dashboardSidebar(),  
dashboardBody(
fluidRow(
  box(plotlyOutput("plot1",height = 250)),

  box(
    title = "Controls", 
    sliderInput("slider", "Slider Value:", 1, 10, 5)
    )
   )
  )
)

server <- function(input, output) {

 output$plot1 <- renderPlotly({

clusters = my_classifier(k=input$slider, data=df)
results_df = cbind(df,as.factor(clusters))
colnames(results_df) = c("x","y","z","color")

plot_ly(data=results_df, x=~x, y=~y, z=~z, 
        type="scatter3d", mode="markers", color=~color)

})
}

 # Run the application 
 shinyApp(ui = ui, server = server)

【问题讨论】:

    标签: r shiny plotly shinyapps


    【解决方案1】:

    该示例不完整并且有几个问题。如果我们排除不完整的数据分析部分并将其替换为随机测试数据,它在技术上是有效的:

    library("shiny")
    library("plotly")
    library("shinydashboard")
    
    ui <- dashboardPage(dashboardHeader(title = "Basic dashboard"), 
                        dashboardSidebar(),  
                        dashboardBody(
                          fluidRow(
                            box(plotlyOutput("plot1",height = 250)),
    
                            box(
                              title = "Controls", 
                              sliderInput("slider", "Slider Value:", 1, 10, 5)
                            )
                          )
                        )
    )
    
    server <- function(input, output) {
      output$plot1 <- renderPlotly({
        #clusters = my_classifier(k=input$slider, data=df)
        #results_df = cbind(df,as.factor(clusters))
        #colnames(results_df) = c("x","y","z","color")
    
        ## random test data set
        results_df <- data.frame(x=runif(10), y=runif(10), z=rnorm(10), color=1:10)
    
        plot_ly(data=results_df, x=~x, y=~y, z=~z, 
                type="scatter3d", mode="markers", color=~color)
      })
    }
    
    # Run the application 
    shinyApp(ui = ui, server = server)
    

    所以我的建议是先修复shiny之外的数据分析部分,当一切正常后,将各个部分放在一起。

    【讨论】:

    • 谢谢!实际上我认为情况并非如此,因为: 1. 我尝试了您的代码,不幸的是,它没有为我显示情节。 2.当我尝试渲染一个 ggplot 图形(具有相同的数据分析部分)时,它工作正常你有其他想法吗?
    • 它对我有用。也许检查您的软件包版本,并检查您是否在适当的浏览器中打开应用程序(因为内置的 RStudio 查看器并不总是正确显示所有内容)。
    猜你喜欢
    • 2021-08-05
    • 2020-02-16
    • 1970-01-01
    • 2016-09-15
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多