Я очень новичок в блеске и бодаться против чего-то, для чего должен быть образец, но не повезло, Гуглинг.
У меня есть простой блестящий файл (приложение R ниже), который возвращает график для n
наблюдений. Помимо того, что график доступен для метода ui
, я хотел бы передать его n
, чтобы помочь ему подобрать размер графика по своему вкусу
library(shiny)
server <- function(input, output) {
output$distPlot <- renderPlot({
firstNames <- c("Bob", "Jane", "Bob")
lastNames <- c("Builder", "Gorillas", "Weave")
ages <- c(25, 26, 27)
df <- data.frame(firstNames, lastNames, ages)
# I want to pass this to `ui`
numFirstNames <- length(unique(df$firstNames))
mapping <- aes(x = firstNames, y = ages)
ggplot(df, mapping) + geom_violin() + coord_flip()
})
}
getHeightInPx <- function(numFirstNames) {
paste(100 * numFirstNames, "px", sep="")
}
ui <- fluidPage(
# I want height to be a function of numFirstNames as calculated in the server definition
mainPanel(plotOutput("distPlot", height = getHeightInPx(2)))
)
shinyApp(ui, server)
, поскольку ui
не является функция и не имеет прямого доступа к выводу (для меня это становится distPlot
от framework magi c), как я могу получить данные, подготовленные в server
, чтобы помочь разметить страницу?
Спасибо