[英]Display locally-stored image in R Shiny
我花了相當多的時間試圖解決這個問題。 當然,在在這里分享我的問題之前,我做了功課。
特別是我沒有成功咨詢:
因此,我確實在 RStudio 項目文件的根目錄下創建了一個“www”文件夾,我在其中放置了一些圖片。
這些圖片在 titlePanel 中使用,但也由應用程序調用的主 htmlwidget 使用。
將這些圖片存儲在本地對我來說至關重要,因為該應用程序可能在安全環境中運行,而無需訪問 Internet。
我嘗試了這些圖片的相對路徑和絕對路徑:沒有顯示圖片。
然后我注意到了一些不一致:只有當我通過 RStudio 中的常規命令“運行選定的行”運行應用程序時,我才會遇到這個問題。 另一方面,當我通過專用命令“運行應用程序”(在 RStudio 的右上角,綠色箭頭)運行應用程序時,我不再有這個問題,圖片顯示很好(但輸入數據是以某種方式進行了檢查,並且在啟動應用程序之前需要花費大量時間)。
最初我認為顯示本地圖像會比存儲在 Internet 上的遠程圖像容易得多,但似乎恰恰相反。
因此我的問題:
此致,
奧利維爾
管理目錄可能很棘手。
您可以使用here
包使處理 R 項目中的目錄變得更加容易,請參閱對 here 包的頌歌。
打開項目后,可以通過以下方式輕松訪問www
圖像:
here::here('www/myimage.jpg')
這也適用於采購應用程序或腳本。
對我來說,通過在 RStudio 中Run Selected Line(s)
運行應用程序時,以下內容也適用:
library(shiny)
# create some local images
if(!dir.exists("myimages")){
dir.create("myimages")
}
myPlotPaths <- paste0("myimages/myplot", seq_len(3), ".png")
for (myPlot in myPlotPaths) {
png(file = myPlot, bg = "transparent")
plot(runif(10))
dev.off()
}
myImgResources <- paste0("imgResources/myplot", seq_len(3), ".png")
# Add directory of static resources to Shiny's web server
addResourcePath(prefix = "imgResources", directoryPath = "myimages")
ui <- fluidPage(
tags$img(src = myImgResources[1], width = "400px", height = "400px"),
tags$img(src = myImgResources[2], width = "400px", height = "400px"),
tags$img(src = myImgResources[3], width = "400px", height = "400px")
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
我沒有具體的答案,但哈德利在“掌握閃亮”一書中的“圖形”章節下展示了一個示例,說明如何顯示本地存儲的圖像。 這本書正在開發中,應該很快就會發布,我將粘貼該章節的鏈接:
該示例在圖像部分下。
HTH
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.