嗨,你可以使用conditionalPanel
要做到這一點,它嵌入所有圖像,但只有一個具有TRUE
的狀態將顯示:
tabPanel("Live Images",
conditionalPanel(condition = "input.image_type == 'img_type1'",
img(src = "img_type1.jpeg")
),
conditionalPanel(condition = "input.image_type == 'img_type2'",
img(src = "img_type2.jpeg")
)
)
而且從image.type
改變你輸入的名稱image_type
因爲.
在Javascript中有特殊含義(如input
和image_type
之間)。
如果你有大量的圖片,你總是可以做這樣的事情:通過tsperry
tabPanel("Live Images",
lapply(X = seq_len(10), FUN = function(i) {
conditionalPanel(condition = paste0("input.image_type == 'img_type", i, "'"),
img(src = paste0("img_type", i, ".jpeg"))
)
})
)
例如,對於圖片來自此post(你可以找到它的rbloggers太),你可以做:
library("shiny")
ui <- fluidPage(
tabsetPanel(
tabPanel("Live Images",
# 50 images to display
lapply(X = seq_len(50), FUN = function(i) {
# condition on the slider value
conditionalPanel(condition = paste0("input.slider == ", i),
# images are on github
img(src = paste0("https://raw.githubusercontent.com/pvictor/images/master/",
sprintf("%04d", i), "plot.png"))
)
}),
sliderInput(inputId = "slider", label = "Value", min = 1, max = 50, value = 1,
animate = animationOptions(interval = 100, loop = TRUE))
)
)
)
server <- function(input, output) {
}
shinyApp(ui = ui, server = server)
當您從反應者發送圖像URL時,您正在通過JavaScript從服務器向客戶端進行傳輸。這些數據需要由客戶端解壓縮並用於轉換文檔,這都需要時間。你有什麼要求?圖像是否需要動態加載?是否有可能加載的有限圖像集? – sdgfsdh
@sdgfsdh需要根據用戶輸入(輸入$ image.type)動態加載圖像,並且是有可以加載的一組有限的圖像。 – maia