Ich möchte ein interaktives Grundstück mit shiny
und ggplot2
erstellen. Ich bin in der Lage, dies erfolgreich mit geom_point
und anderen geoms
mit einer offensichtlichen x
und y
Achse zu tun. Wenn Sie etwas wie eine geom_bar
verwenden, ist dies jedoch schwieriger, da Sie keine y
Variable haben.R Shiny Plot Klicken Sie mit Geom Bar und Facetten
Es gibt eine Lösung here und here die x
Variable aus dem Klick-Ereignisse zu extrahieren, die Filterung gewünschten zu tun, aber keiner von diesen Parzellen mit Facetten behandeln. Ich möchte die Click-Option auf einem ggplot
mit Facetten verwenden. Ich habe versucht, den Code an der ersten Verbindung anzupassen, aber das war nicht erfolgreich.
library(ggplot2)
library(shiny)
ui <- fluidPage(
fluidRow(
plotOutput("plot1", height = 300, width = 300,
click = "plot1_click",
)
),
verbatimTextOutput("x_value"),
verbatimTextOutput("selected_rows")
)
server <- function(input, output) {
output$plot1 <- renderPlot({
ggplot(ToothGrowth, aes(supp)) + geom_bar(stat = "count") + facet_wrap(~dose)
})
# Print the name of the x value
output$x_value <- renderPrint({
if (is.null(input$plot1_click$x)) return()
lvls <- levels(ToothGrowth$supp)
lvls[round(input$plot1_click$x)]
})
# Print the rows of the data frame which match the x value
output$selected_rows <- renderPrint({
if (is.null(input$plot1_click$x)) return()
keeprows <- round(input$plot1_click$x) == as.numeric(ToothGrowth$supp)
ToothGrowth[keeprows, ]
})
}
shinyApp(ui, server)
Ein Klick auf eine der Bars tut gut auf die x
Werte zu filtern, sondern umfasst die Ergebnisse aus allen Facetten. Ich möchte nur Ergebnisse von der angeklickten Facette einbeziehen.
Ich habe versucht, nearPoints
mit pannelvar1
verwenden, aber es wirft einen Fehler, da ich es nicht über eine y
Variable zu übergeben.
Irgendwelche Gedanken?
Ich wünschte, ich könnte zweimal upvote. Riesige Hilfe zu den 'Optionen (shiny.trace = TRUE)'. Danke, @danielson. –