根据窗口大小动态调整闪亮绘图输出的高度和/或宽度

我希望将闪亮的图形输出高度和宽度调整为当前窗口大小.我试过使用下面但没有用.

ShinyUi <- fluidPage(

  # Application title
  titlePanel("title"),

  sidebarLayout(
    sidebarPanel(
      ... inputs ...
    ),

    mainPanel(
          plotlyOutput("distPlot", height = 'auto', width = 'auto')
      )
  ))

ShinyServer <- function(input, output, session) {

   output$distPlot <- renderPlotly({

    p <- ggplot(dataShow, aes(x=dataShow$X, y=dataShow$Y))  + 
geom_point(shape=1, alpha = 0.5, color = "grey50")

    ggplotly(p)

  })

}


# Run the application 
shinyApp(ui = ShinyUi, server = ShinyServer)

您是否知道可能在服务器功能中使用的任何其他选项而不是上述UI功能使用?

较小的窗口:
enter image description here

扩展窗口:enter image description here

最佳答案
它没有回答你的问题但是根据我的评论你可以使用this链接中的js将图形高度和宽度添加到ggplotly函数.

我准备了一个你想要的最小例子.

library(shiny)
library(plotly)

ShinyUi <- fluidPage(
  tags$head(tags$script('
                        var dimension = [0, 0];
                        $(document).on("shiny:connected", function(e) {
                        dimension[0] = window.innerWidth;
                        dimension[1] = window.innerHeight;
                        Shiny.onInputChange("dimension", dimension);
                        });
                        $(window).resize(function(e) {
                        dimension[0] = window.innerWidth;
                        dimension[1] = window.innerHeight;
                        Shiny.onInputChange("dimension", dimension);
                        });
                        ')),

      plotlyOutput("distPlot", width = "auto")

  )

ShinyServer <- function(input, output, session) {


  #To make the responsive to the change in UI size
  observeEvent(input$dimension,{

    output$distPlot <- renderPlotly({

      p <- ggplot(iris, aes(x = Sepal.Length, y=Sepal.Width))  +
        geom_point(shape=1, alpha = 0.5, color = "grey50")
      ggplotly(p, width = (0.95*as.numeric(input$dimension[1])), height = as.numeric(input$dimension[2]))

    })

  })

}


# Run the application 
shinyApp(ui = ShinyUi, server = ShinyServer)

您获得的输出如下:
enter image description here

现在,当你使窗口更小时,你仍然得到一个占据整个屏幕的图(没有滚动条!),如下所示:
enter image description here

转载注明原文:根据窗口大小动态调整闪亮绘图输出的高度和/或宽度 - 代码日志