sidebarpanel navbarpage inputs examples ejemplos r layout shiny

navbarpage - Controla la altura en fluidRow en R brillante.



shiny r examples (2)

Estoy tratando de construir un diseño para una aplicación shiny . He estado buscando en la guía de diseño de la aplicación e hice algunas búsquedas en Google, pero parece que el sistema de diseño en brillante tiene sus límites.

Puedes crear algo como esto:

fluidPage( fluidRow( column(6,"Topleft"), column(6,"Topright")), fluidRow( column(6,"Bottomleft"), column(6,"Bottomright")) )

Esto te da 4 objetos del mismo tamaño.

¿Es posible ahora dar a los 2 Top-Objects una altura diferente a los Bottom-Objects ?

¿Y es posible fusionar el Topright-Object Bottomright-Object ?


La altura de las filas responde y está determinada por la altura de los elementos de las columnas. Como ejemplo, usamos dos elementos en la primera fila con alturas de 200 y 100 píxeles respectivamente. La fila toma la altura máxima de sus elementos. La segunda fila tiene elementos con alturas de 100 y 150 píxeles respectivamente y toma de nuevo la altura del elemento más grande.

library(shiny) runApp(list( ui = fluidPage( fluidRow( column(6,div(style = "height:200px;background-color: yellow;", "Topleft")), column(6,div(style = "height:100px;background-color: blue;", "Topright"))), fluidRow( column(6,div(style = "height:100px;background-color: green;", "Bottomleft")), column(6,div(style = "height:150px;background-color: red;", "Bottomright"))) ), server = function(input, output) { } ))

Para un mayor control, la idea con bibliotecas como bootstrap es que estilice sus elementos con CSS, por ejemplo, podemos agregar una clase a cada fila y establecer su altura y otros atributos como nos plazca:

library(shiny) runApp(list( ui = fluidPage( fluidRow(class = "myRow1", column(6,div(style = "height:200px;background-color: yellow;", "Topleft")), column(6,div(style = "height:100px;background-color: blue;", "Topright"))), fluidRow(class = "myRow2", column(6,div(style = "height:100px;background-color: green;", "Bottomleft")), column(6,div(style = "height:150px;background-color: red;", "Bottomright"))) , tags$head(tags$style(" .myRow1{height:250px;} .myRow2{height:350px;background-color: pink;}" ) ) ), server = function(input, output) { } ))

Pasamos una etiqueta de estilo al elemento principal aquí para estipular nuestro estilo. Hay una serie de formas en que se puede lograr el estilo, vea http://shiny.rstudio.com/articles/css.html


Para fusionar la parte superior e inferior derecha, la clave es combinar fluidRows y columns la manera correcta. Aquí hay un tutorial oficial (solo reemplaza las boxes por columns ). Ejemplo también here

Si desea combinar la parte superior derecha e inferior derecha, puede usar una sola fila que contenga dos columnas. La primera columna (izquierda) nuevamente contiene dos filas, la columna derecha una fila grande para la combinación:

ui <- shinyUI(fluidPage( fluidRow( column(width=6, fluidRow("Topleft", style = "height:200px; background-color: yellow;"), fluidRow("Bottomleft", style = "height:200px; background-color: green;")), column(width = 6, fluidRow("Topright and Bottomright", style = "height:400px; background-color: grey;"))) )) server <- function(input, output) {} shinyApp(ui, server)