Rシャイニーの2パネルページのメインパネルで100%幅(デフォルト)に設定されたプロットがあります。サイドバーはトグルアクションボタンで隠すことができます。Rシャイニーページでサイドバーを表示/非表示にした後、プロットの幅を100%に変更しない
サイドバーが表示されている場合(デフォルト)、プロットはメインパネルの幅を塗りつぶします。サイドバーが非表示になっているときは、プロットを展開して現在利用可能なスペースの100%、つまりブラウザウィンドウ全体を塗りつぶしてください。しかし、これは起こりません!それは同じサイズを維持します。
library(shiny)
library(shinyBS)
UI <- fluidPage(
bsButton("showpanel", "Show/hide sidebar", type = "toggle", value = TRUE),
sidebarLayout(
conditionalPanel(condition = "input.showpanel == true",
sidebarPanel("This is my sidebar.")
),
mainPanel(plotOutput("plot", width = "100%"))
)
)
SERVER <- function(input, output) {
output$plot <- renderPlot({
plot(1:10, main = "The width of this plot adjusts\nto window resizes but not to\nshow/hide sidepanel!")
})
}
runApp(shinyApp(UI,SERVER))
これまでにしようとしました:
- は、上記のように、UIファイル内からプロットオブジェクトを定義します。
- サーバファイル内からrenderUIオブジェクトとしてプロットオブジェクトを定義します。
- Scaling shiny plots to window heightの
tags$head(tags$style("#myplot{height:100vh !important;}"))
ページのCSSタグを設定します。
の回避策:
- はプロットの幅がダイナミックでトグルボタンの状態に応じて行います。私はプロットを作ることができます。サイドバーが隠れているときの幅は140%です。これはよく一般化されるものではなく、適合性を使用する点は失われます
fluidPage
。
(fluidPage
は、ブラウザのウィンドウサイズに依存レイアウトを変更します。たとえば、あなたは携帯電話の大きさについてのあなたのブラウザのウィンドウを作る場合、それはメインパネル上のサイドバーを配置します。)
問題は、sidebarLayoutを使ってサイドバーの 'col-sm-4'クラスと' col-sm-8'クラスの2つのブートストラップカラムを作成するということです。これはあなたのプロットが、画面の〜66%を超えるサイズ。 –