Plotly与ShinyApp?

问题描述 投票:0回答:1

编辑:解决了。

我不知道是什么问题,但我猜测是关于Rstudio.当我把应用程序上传到 https:/shinyapps.io。 我在尝试用shinyapp渲染一个plotly对象。

我试图用shinyapp渲染一个plotly对象。

我在网上看了很多疑问,大部分都是关于使用 "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 rstudio plotly shinyapps
1个回答
0
投票

这个例子不完整,有几个问题。如果我们把不完整的数据分析部分删掉,用随机测试数据代替,技术上是可以的。

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之外 当一切正常后,再把这些部分拼凑起来。

© www.soinside.com 2019 - 2024. All rights reserved.