0
我想使用動態接口使用selectInput
小工具更改ggvis
陰謀的圖層。問題是,當我在創建繪圖後選擇不同的圖層時,它會發生變化,但它會很快消失。以下是代碼的簡化版本,以顯示省略所有額外動態內容的問題。我只是從數據集中繪製一些數值。我添加了幾個selectInput
小部件,讓用戶選擇什麼類型的情節以及何時顯示情節。請注意,我需要包含renderUI
中的所有元素。dingically更改ggvis陰謀層
library(shiny)
library(ggvis)
runApp(list(
ui = shinyUI(
fluidPage(
sidebarLayout(
sidebarPanel(uiOutput("controls")),
mainPanel(uiOutput("Plot_UI")
)
)
)
),
server = function(input, output, session) {
dat <- reactive(iris[sample(nrow(iris),input$numbers),])
buildPlot <- function(layer = 'points'){
if (layer=='points'){
dat %>%
ggvis(~Sepal.Width, ~Sepal.Length) %>%
layer_points() %>%
bind_shiny("ggvis1")
} else {
dat %>%
ggvis(~Sepal.Width, ~Sepal.Length) %>%
layer_bars() %>%
bind_shiny("ggvis1")
}
}
output$controls <- renderUI({
div(
sliderInput("numbers", label = "Number of values to plot?", min = 1, max = 150, value = 75),
selectInput('plot_type', 'Plot Type', c("points","bars")),
selectInput("show", 'Show plot?', c('No','Yes'))
)
})
output$Plot_UI <- renderUI({
if (!is.null(input$show) && input$show == 'Yes'){
cat("Plot_UI -> Build plot\n")
buildPlot(input$plot_type)
div(
uiOutput("ggvis_ui"),
ggvisOutput("ggvis1")
)
}
})
}
))
再次看到圖上的唯一方法是通過選擇不顯示的情節,後來選擇顯示再次使用「顯示情節」 selectInput
的情節。
我不知道這是一個錯誤還是我做錯了。任何幫助或建議真的很感激。
謝謝,它正在工作。現在唯一的問題是,當我隱藏並嘗試再次顯示劇情時,它不會出現。 – Geovany
嗯,我明白了。我編輯了代碼來解決這個問題。 –
太棒了,現在一切正常。謝謝你的幫助。 – Geovany