Ich habe alle Lösungen auf SO mit grid.arrange
angeschaut, aber es erreicht nicht wirklich, was ich will.zeigen eine unbekannte Anzahl von Graphen in einem Raster RShiny
Nehmen wir an, ich habe eine Liste von grobs, die in einer reaktiven Umgebung in RShiny erzeugt werden.
ich eine mainPanel
erstellen möchten, wo diese Grafiken auf 2 Spalten sind (bis zu diesem Punkt, es mit grid.arrange
alles machbar ist), aber in der jede Zeile zu einem Element fluidRow
entspricht.
würde All A Barebone Beispiel dafür sein
ui <- fluidPage(
titlePanel("TEST"),
sidebarPanel(width=3,
actionButton(inputId = 'launchCalcButton',label = 'Launch Calc')
),
mainPanel(
uiOutput("resultsPlotUI")
)
)
server <- function(input,output){
graphsList <- eventReactive(input$launchCalcButton, {
a <- lapply(1:10,function(i){
return(
ggplot(data = data.frame(a=rnorm(10),b=rnorm(10)),aes(x=a,y=b))
+geom_point()
)
})
return(a)
})
output$resultsPlot <- renderPlot({
do.call(grid.arrange,c(graphsList(),ncol=2))
})
output$resultsPlotUI <- renderUI({
fluidRow(
column(12,
plotOutput(
outputId = 'resultsPlot'
)
)
)
})
}
app = shinyApp(ui,server)
runApp(app)
die Graphen enden in einer einzigen Linie drückte auf, während ich sie zwischen den Zeilen aufgeteilt werden möchten.
dankt für Ihre Antwort, aber ich würde eine solche Lösung, wo es die Standard-Zeilenhöhe verwendet und erstellt eine neue fluidRow in der Benutzeroberfläche nach Bedarf. – Chapo