使用 Shiny 和 renderImage() 预渲染图像的灵活宽度和高度
Flexible width and height of pre-rendered image using Shiny and renderImage()
我正在使用 renderImage() 将一堆预渲染图像调用到 Shiny 应用程序中。我希望这些 png 图像位于侧边栏中,并根据浏览器或设备类型(例如 Chrome、Android)调整宽度和高度。因此,我希望该应用程序适合移动设备。我不知道如何让它像这样灵活(例如,max-width = 500px 或 width = 100%,就像你在其他语言中所做的那样)。
一个简单的例子:
shinyUI(fluidPage(
titlePanel("title panel"),
sidebarLayout(
sidebarPanel( "sidebar panel",
sliderInput("route", label = "Route Number:",
min = 1, max = 5, value = 1),
imageOutput("Image")),
mainPanel("main panel")
)
))
和server.R:
shinyServer(function(input, output) {
output$Image <- renderImage({
filename <- normalizePath(file.path('www/maps',
paste(input$route, '.png', sep='')))
list(src = filename,
alt = paste("Image number", input$route))
}, deleteFile = FALSE)
})
干杯,
凯特琳
我自己想出来了。据我所知,在 R 中没有办法处理这个问题。相反,使用你的风格 sheet(例如,bootstrap.css)添加如下内容:
img {
border: 1;
max-width: 100%;
}
element.style {
width: 33.33%;
}
我也成功地将它与 Shiny 中的传单地图一起使用。这就是我的风格 sheet:
div#myChart2 {
width: inherit;
}
我遇到了同样的问题,但可以在 Shiny 中处理该问题。
这是我所做的:
output$photokib <- renderImage({
ak <- formatC(ak, width = 4, format = "d", flag = "0")
photo <- normalizePath(file.path('Data/photos',
paste(image,'_1','.jpg', sep='' )))
list(src = photo,
width = 400,
height = 300)
},deleteFile = FALSE)
我正在使用 renderImage() 将一堆预渲染图像调用到 Shiny 应用程序中。我希望这些 png 图像位于侧边栏中,并根据浏览器或设备类型(例如 Chrome、Android)调整宽度和高度。因此,我希望该应用程序适合移动设备。我不知道如何让它像这样灵活(例如,max-width = 500px 或 width = 100%,就像你在其他语言中所做的那样)。
一个简单的例子:
shinyUI(fluidPage(
titlePanel("title panel"),
sidebarLayout(
sidebarPanel( "sidebar panel",
sliderInput("route", label = "Route Number:",
min = 1, max = 5, value = 1),
imageOutput("Image")),
mainPanel("main panel")
)
))
和server.R:
shinyServer(function(input, output) {
output$Image <- renderImage({
filename <- normalizePath(file.path('www/maps',
paste(input$route, '.png', sep='')))
list(src = filename,
alt = paste("Image number", input$route))
}, deleteFile = FALSE)
})
干杯,
凯特琳
我自己想出来了。据我所知,在 R 中没有办法处理这个问题。相反,使用你的风格 sheet(例如,bootstrap.css)添加如下内容:
img {
border: 1;
max-width: 100%;
}
element.style {
width: 33.33%;
}
我也成功地将它与 Shiny 中的传单地图一起使用。这就是我的风格 sheet:
div#myChart2 {
width: inherit;
}
我遇到了同样的问题,但可以在 Shiny 中处理该问题。 这是我所做的:
output$photokib <- renderImage({
ak <- formatC(ak, width = 4, format = "d", flag = "0")
photo <- normalizePath(file.path('Data/photos',
paste(image,'_1','.jpg', sep='' )))
list(src = photo,
width = 400,
height = 300)
},deleteFile = FALSE)