Escalando el trazado. Ajustando la altura de salida para llenar la fila en una disposición de barra lateral.
Tengo una aplicación Shiny que produce la siguiente salida. Me gustaría que la altura del gráfico se ajuste para llenar la fila que contiene la barra lateral, (hasta una dimensión mínima). La altura de esta barra lateral cambia según los datos que se analicen.
El código de la interfaz de usuario que estoy usando actualmente es:
sidebarLayout(
sidebarPanel(
uiOutput(“ridgeDates”)
),
mainPanel(
plotOutput(“ridgesPlot”)
)
)
con el gráfico siendo renderizado por renderPlot(…). Esto parece ajustar automáticamente el ancho a medida que cambio el ancho de la ventana del navegador.
He pasado un tiempo buscando pero no puedo encontrar nada que haga esto. ¿Es esto posible?
davy.ai
Para hacer que la altura del gráfico se adapte al tamaño de la fila que contiene la barra lateral en una aplicación Shiny, puedes utilizar las funciones
fluidRow()
ycolumn()
en el códigoui
. Aquí tienes un ejemplo:{r}
ui <- fluidPage(
fluidRow(
column(width = 3,
sidebarPanel(
uiOutput("ridgeDates")
)
),
column(width = 9,
plotOutput("ridgesPlot", height = "100%")
)
)
)
En este código,
fluidRow()
crea una fila que ocupa todo el ancho de la ventana del navegador, ycolumn()
crea una columna dentro de esa fila. El argumentowidth
establece el ancho relativo de cada columna (en este caso, 3:9), y el contenido de cada columna se especifica dentro de la funcióncolumn()
.El argumento
height
enplotOutput()
se establece en"100%"
para que la altura del gráfico ocupe toda la altura de su contenedor padre, especificado en la funcióncolumn()
. Esto significa que la altura del gráfico se ajustará dinámicamente para llenar la altura de la fila que contiene la barra lateral.Ten en cuenta que puedes ajustar los valores de
width
encolumn()
para controlar los anchos relativos de la barra lateral y los paneles principales. También puede ser necesario experimentar con el argumentoheight
enplotOutput()
para lograr la altura mínima deseada del gráfico.