无论操作系统和屏幕分辨率如何,都可以在闪亮的仪表板上调整绘图和框的高度

时间:2019-11-13 01:10:55

标签: r shiny

是否有一种方法可以调整发光的仪表板中的图和框的高度,而不管操作系统和屏幕分辨率如何?例如,在下面,我想在显示应用程序的任何屏幕中覆盖仪表板主体中80%的屏幕高度?

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(plotly)
library(ggplot2)

shinyApp(
  ui = dashboardPagePlus(
    header = dashboardHeaderPlus(
      enable_rightsidebar = TRUE,
      rightSidebarIcon = "gears"
    ),
    sidebar = dashboardSidebar(),
    body = dashboardBody(
      navbarPage("Navbar!",
                 tabPanel("Plot",
                          boxPlus(
                            plotlyOutput("plot1")
                          )
                 ))
    ),
    title = "Right Sidebar"
  ),
  server = function(input, output) {

    output$plot1 <- renderPlotly({
      p <- qplot(Petal.Width, Sepal.Length, data = iris, color = Species)
      p <- ggplotly(p)
      hide_legend(p)
    })
  }
)

2 个答案:

答案 0 :(得分:2)

也许你想要

tabPanel("Plot",
         boxPlus(
           plotlyOutput("plot1", height = "80vh"), 
           height = "80vh"
         )
)

80vh表示视口高度的80%。

答案 1 :(得分:0)

尝试结合使用fluidRowcolumn函数。对于占据桌面屏幕上tabPanel的80%的盒子:

tabPanel("Plot",
         fluidRow(column(9,
                boxPlus(width=12,
                        plotlyOutput("plot1")
                        )
                 ))
        )

相反,对于占用盒式容器80%的地块,

tabPanel("Plot",
                boxPlus(width=12,
                        fluidRow(column(9,
                                 plotlyOutput("plot1")
                                 ))
                       )
        )

在所有情况下,由于fluidRowcolumn使用Bootstrap网格,一旦您缩小到移动屏幕的大小,组件将重新排列以显示移动视图。

此外,您将navbarPage与DashboardPage组合在一起似乎有点奇怪-您实际上是要用tabsetPanel还是tabItems代替?