所以我尝试闪亮,我有一个问题。
我想要的是一个selectinput你可以选择不同的选项并得到一个特定的图表。这些不同的图是已在源文件中创建的ggplot2图。所以只需要调用图表。但是,我似乎并没有弄清楚如何做到这一点。图是ggplot2图,它们很好,它们加载完美,所以我认为这不是问题。
我还想要一个取决于selectinput的文本输出。
所以这是我的服务器脚本:
shinyServer(
function(input, output) {
output$map <- renderPlot({
plot <- switch(input$activity,
"" = NULL,
"act1" = plot1,
"act2" = plot2,
"act3" = plot3,
"act4" = plot4,
"act5" = plot5,
"act6" = plot6)
plot
}),
output$text1 <- renderText({
text <- switch(input$Activiteit,
"" = NULL,
"act1" = paste("blabla"),
"act2" = paste("blabla2"),
"act3" = paste("blabla3"),
"act4" = paste("blabla4"),
"act5" = paste("blabla5"),
"act6" = paste("blabla6")
)
text
})
}
)
有一件事我不确定是否必须加载源文件。我现在加载它在主文件中你运行的应用程序。我也可以理解你必须在服务器文件中加载它。
然而,这不是唯一的问题,因为文本也没有显示在闪亮的输出中。所以我的代码必须出错。 ui脚本提供正确的输出,因此这不是问题。我希望你能帮助我。
答案 0 :(得分:0)
.Hi,您不需要在server.R中的2个输出之间使用逗号,而"" = NULL,
中不需要switch
。试试这个例子:
## ui.R
shinyUI(fluidPage(
selectInput(inputId = "Activiteit", label = "", choices = c("", paste0("act", 1:6))),
h2("Your text"),
textOutput(outputId = "text1"),
h2("Your graph"),
plotOutput(outputId = "map")
))
## server.R
shinyServer(
function(input, output) {
output$map <- renderPlot({
p <- switch(input$Activiteit,
"act1" = p1,
"act2" = p2,
"act3" = p3,
"act4" = p4,
"act5" = p5,
"act6" = p6)
print(p)
})
# no comma here
output$text1 <- renderText({
text <- switch(input$Activiteit,
"act1" = paste("blabla"),
"act2" = paste("blabla2"),
"act3" = paste("blabla3"),
"act4" = paste("blabla4"),
"act5" = paste("blabla5"),
"act6" = paste("blabla6")
)
return(text)
})
}
)
## global.R
# you can source files here
library(ggplot2)
p1 <- qplot(1:10, rnorm(10), colour = runif(10))
p2 <- qplot(1:20, rnorm(20), colour = runif(20))
p3 <- qplot(1:30, rnorm(30), colour = runif(30))
p4 <- qplot(1:40, rnorm(40), colour = runif(40))
p5 <- qplot(1:50, rnorm(50), colour = runif(50))
p6 <- qplot(1:60, rnorm(60), colour = runif(60))
希望它有所帮助。