我使用Shiny和ggplot2作为交互式图表。我还使用" plot1_click"得到x和y位置。
output$selected <- renderText({
paste0("Value=", input$plot1_click$x, "\n",
"Names=", input$plot1_click$y) }) #how to get names???
这是服务器代码的一部分。这就是我想要的,而不是打印&#34; y&#34;坐标,我想打印用y轴写的相应名称。它有什么可能吗?
答案 0 :(得分:0)
据我所知plotOutput
不支持点击点。点击事件只会返回点击位置的坐标。然而,这些坐标可用于计算出最近的点。
This shiny app使用函数shiny::nearPoints
,它正是这样做的。这是一个最小的例子。
library(shiny)
library(ggplot2)
shinyApp(
fluidPage(
plotOutput("plot", click = "plot_click"),
verbatimTextOutput('print')
),
server = function(input, output, session){
output$plot <- renderPlot({ggplot(mtcars, aes(wt, mpg)) + geom_point()})
output$print = renderPrint({
nearPoints(
mtcars, # the plotting data
input$plot_click, # input variable to get the x/y coordinates from
maxpoints = 1, # only show the single nearest point
threshold = 1000 # basically a search radius. set this big enough
# to show at least one point per click
)
})
}
)
verbatimTextOutput
显示距离点击位置最近的点。请注意,nearPoints
仅适用于ggplots。但是帮助页面表明还有一种方法可以将它用于基本图形。