Я пытаюсь объединить два графика в Shiny с помощью cowplot / plot_grid, и я хотел бы получить координату x для кликов.
Когда у меня есть один график, без использования plot_grid , Я получаю значение x в масштабе оси x. Однако, когда у меня есть два графика, я получаю десятичный процент от ширины графика.
Возможно ли получить значение x для щелчков на одном из графиков в группе из нескольких выровненных графиков напрямую , или выяснить это из сообщенного десятичного процента?
MWE:
library("tidyverse")
library("shiny")
library("cowplot")
ui <- basicPage(
plotOutput("oneplot", click = "oneplotclick"),
verbatimTextOutput("oneplotclicklocation"), #Prints x value
plotOutput("bothplots", click = "bothplotsclick"),
verbatimTextOutput("bothplotsclicklocation") #Prints percent of plot width
)
# Server logic ----
server <- function(input, output) {
output$oneplot <- renderPlot({
ggplot(mtcars, aes(x = mpg, y = hp)) +
geom_point()
})
output$oneplotclicklocation <- renderText({input$oneplotclick$x})
output$bothplots <- renderPlot({
plot1 <- ggplot(mtcars, aes(x = mpg, y = hp)) +
geom_point()
plot2 <- ggplot(mtcars, aes(x = mpg, y = qsec)) +
geom_point()
plot_grid(plot1, plot2, nrow = 2)
})
output$bothplotsclicklocation <- renderText({input$bothplotsclick$x})
}
# Run app ----
shinyApp(ui, server)
(В этом MWE не важно, чтобы графики были выровнены по осям x, но в моем реальном приложении это необходимо.)