编辑:解决了。
我不知道是什么问题,但我猜测是关于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)
这个例子不完整,有几个问题。如果我们把不完整的数据分析部分删掉,用随机测试数据代替,技术上是可以的。
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之外 当一切正常后,再把这些部分拼凑起来。