我想制作一个响应式显示的功能,它会根据选择的输入值展示不同数量的图表。以mtcars数据集为例,我想让用户可以选择是按照齿轮数量还是化油器数量来绘制图表。
看一下unique(mtcars$gear)
,我们可以看到它有4 3 5
三个可能的值,而unique(mtcars$carb)
有4 1 2 3 6 8
六个可能的值。因此,我希望在选择“化油器数量”时生成6个单独的图表,在选择“齿轮数量”时只生成3个图表。我已经尝试使用conditionalPanel
,但在切换选择器后会不可避免地崩溃。有办法解决吗?
Shiny UI:
library(shiny)
library(googleVis)
shinyUI(bootstrapPage(
selectInput(inputId = "choosevar",
label = "Choose Cut Variable:",
choices = c("Nr. of Gears"="gear",
"Nr. of Carburators"="carb")),
htmlOutput('mydisplay') ##Obviously I'll want more than one of these...
# conditionalPanel(...)
))
闪亮服务器:
shinyServer(function(input, output) {
#Toy output example for one out of 3 unique gear values:
output$mydisplay <- renderGvis({
gvisColumnChart(
mtcars[mtcars$gear==4,], xvar='hp', yvar='mpg'
)
})
})