Щелкните местоположение на нескольких выровненных графиках в Shiny - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь объединить два графика в 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, но в моем реальном приложении это необходимо.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...