Ich habe eine shiny
App und ich möchte eine ggplot
mit einem brush
am Anfang, so dass der Benutzer nicht bestimmte Bereich von Interesse jedes Mal, wenn die App startet ausgewählt werden muss. Später kann der Benutzer natürlich einen anderen Bereich auswählen. Hier ist ein Beispiel zu beginnen mit:Ist es möglich, Pinsel in ggplot in einer glänzenden App zu initialisieren?
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)
})
}
))
initialisieren es aber zu dem, was? Es beginnt "initialisiert" für das gesamte Gebiet. Ich vermute, Sie wollen es auf einen bestimmten Teil initialisieren, aber welchen Teil? Alles andere, was kleiner ist als das Ganze? –
Ja, alles andere ist kleiner als die ganze Sache. In diesem speziellen Beispiel möchte ich sagen, dass ich will, dass x im Bereich von 25 bis 75 und y vom Minimum bis zum Maximum liegt. –