У меня блестящее приложение с заголовком , одним сюжетом , некоторым описанием и actionButton .Я хочу, чтобы элементы были выровнены следующим образом:
- title on top ;
- description и actionButton внизу ;
- сюжет между изменениями размера в соответствии с разрешением монитора.
My app.R
выглядит следующим образом:
library(shiny)
text <- list(
"one",
"one\ntwo",
"one\ntwo\nthree",
"one\ntwo\nthree\nfour"
)
ui <- fluidPage(
titlePanel("title"),
fluidRow(plotOutput("plot")),
fluidRow(style = "position:absolute;bottom:20px;left:20px",
verbatimTextOutput("text"),
actionButton("next_el", ">>")
)
)
server <- function(input, output) {
output$plot <- renderPlot({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$next_el + 1)
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
output$text <- renderText(text[[input$next_el + 1]])
observeEvent(input$next_el, {})
}
# Run the application
shinyApp(ui = ui, server = server)
Что у меня есть на данный момент: title , description и actionButton размещены нормально на рабочем столе и на мобильных экранах. описание также изменяет размер в зависимости от количества текста.
Однако размер графика не изменяется должным образом: на мобильных устройствах описание размещается над участок .С другой стороны, на настольных устройствах график использует только половину экрана.
Я попытался изменить размер графика с помощью plotOutput("plot", height = "50%")
и plotOutput("plot", height = "auto")
, но затем график исчезает.
Что я могу сделать, чтобы мой сюжет изменил размер вверх , если места достаточно, и изменил размер вниз , если места недостаточно?