Tôi có ứng dụng shiny
và tôi muốn một số ggplot
với số brush
khi bắt đầu, vì vậy người dùng không cần phải chọn khu vực ưa thích nhất định mỗi khi ứng dụng bắt đầu. Sau đó tất nhiên người dùng có thể chọn khu vực khác nhau. Dưới đây là ví dụ để bắt đầu với:Có thể khởi chạy cọ trong ggplot trong ứng dụng sáng bóng không?
library(shiny)
library(ggplot2)
runApp(shinyApp(
ui = fluidPage(plotOutput('plotA', brush = brushOpts(id = 'plotA_brush')),
plotOutput('plotZ')),
server = function(input, output, session) {
pollData <- reactivePoll(60 * 1000, session,
checkFunc = function(){ Sys.time() },
valueFunc = function(){ data.frame(x = 1:100, y = cumsum(rnorm(100)))})
output$plotA <- renderPlot({
dt <- pollData()
ggplot(dt, aes(x, y)) + geom_line()
})
ranges <- reactiveValues(x = NULL, y = NULL)
observe({
brush <- input$plotA_brush
if(!is.null(brush)) {
ranges$x <- c(brush$xmin, brush$xmax)
ranges$y <- c(brush$ymin, brush$ymax)
} else {
ranges$x <- NULL
ranges$y <- NULL
}
})
output$plotZ <- renderPlot({
dt <- pollData()
ggplot(dt, aes(x, y)) + geom_line() + coord_cartesian(xlim = ranges$x, ylim = ranges$y)
})
}
))
khởi nó với những gì mặc dù? Nó bắt đầu "khởi tạo" cho toàn bộ khu vực. Tôi nghi ngờ bạn muốn khởi tạo nó vào một phần cụ thể, nhưng phần nào? Bất cứ điều gì khác nhỏ hơn toàn bộ sự việc? –
Có, bất cứ điều gì khác nhỏ hơn toàn bộ sự việc. Trong ví dụ cụ thể này, giả sử tôi muốn 'x' nằm trong phạm vi từ 25 đến 75 và' y' từ nhỏ nhất đến tối đa. –