我希望能够使用R Plotly从服务器端禁用图例选择。我们在这里看到,可以通过以下方式在plotly javascript上实现此目标:
我发现了一个使用CSS的hacky解决方案来禁用图例。然而,如果您有多个不同的图表用于相同的
Reprex:
最终目标是,单击下面的图例不得隐藏任何点。
gd.on('plotly_legendclick',function() { return false; })
是否有任何方法可以使用event_register()
或event_data()
在R中实现此功能?我发现了一个使用CSS的hacky解决方案来禁用图例。然而,如果您有多个不同的图表用于相同的
output$gg
,则CSS代码将禁用所有图表的图例。Reprex:
最终目标是,单击下面的图例不得隐藏任何点。
library(shiny)
library(plotly)
library(tidyverse)
ui <- fluidPage(
plotlyOutput("gg"),
verbatimTextOutput("click"),
verbatimTextOutput("doubleclick")
)
server <- function(input, output, session) {
output$gg <- renderPlotly({
p <- ggplot(mtcars, aes(wt, mpg, color = factor(cyl))) +
geom_point() +
facet_wrap(~vs)
ggplotly(p) %>%
event_register("plotly_legendclick") %>%
event_register("plotly_legenddoubleclick")
})
output$click <- renderPrint({
event_data("plotly_legendclick")
})
output$doubleclick <- renderPrint({
event_data("plotly_legenddoubleclick")
})
}
shinyApp(ui,server)