使用Shiny和renderImage()灵活调整预渲染图像的宽度和高度

使用Shiny和renderImage()灵活调整预渲染图像的宽度和高度,shiny,Shiny,我正在使用renderImage()将一组预渲染图像调用到一个闪亮的应用程序中。我希望这些png图像位于侧边栏中,并根据浏览器或设备类型(如Chrome、Android)调整宽度和高度。因此,我希望该应用程序对手机友好。我不知道如何使它像这样灵活(例如,最大宽度=500px或宽度=100%,就像在其他语言中一样) 一个简单的例子: shinyUI(fluidPage( titlePanel("title panel"), sidebarLayout( sidebarPanel(

我正在使用renderImage()将一组预渲染图像调用到一个闪亮的应用程序中。我希望这些png图像位于侧边栏中,并根据浏览器或设备类型(如Chrome、Android)调整宽度和高度。因此,我希望该应用程序对手机友好。我不知道如何使它像这样灵活(例如,最大宽度=500px或宽度=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")
  )
))
和服务器。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)
})
shinyServer(功能(输入、输出){

output$Image我自己解决了。据我所知,在R中没有办法处理这个问题。相反,使用样式表(例如bootstrap.css),添加如下内容:

   img {
      border: 1;
      max-width: 100%;
    }
    element.style {
      width: 33.33%;
    }
我还成功地将其与Shiny中的传单地图配合使用。这是我在样式表中所做的:

div#myChart2 {
  width: inherit;
}

我也有同样的问题,但可以在内部处理问题。 以下是我所做的:

     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)

输出$photokib,这样你就基本上设置了宽度和高度。这很有效。你能解释一下你在用formatC()部分做什么吗?
@cnmillar
可以解释一下如何将css文件链接到闪亮的应用程序上吗?