R 禁用图例双击事件

R 禁用图例双击事件,r,plotly,legend,r-plotly,R,Plotly,Legend,R Plotly,如何在plotly for R中禁用“双击图例以隔离一条轨迹”交互?我想要一个双击,只有两次点击的效果 下面是一个如何使用Javascript执行此操作的示例: Plotly.newPlot('graph')[{ y:[1,2,1] }, { y:[3,4,2] }]) .然后(gd=>{ gd.on('plotly_legenddoubleclick',()=>false) }) 您可以使用htmlwidgets将类似的JavaScript代码添加到R代码中 选择mai-n Plotly

如何在plotly for R中禁用“双击图例以隔离一条轨迹”交互?我想要一个双击,只有两次点击的效果

下面是一个如何使用Javascript执行此操作的示例:

Plotly.newPlot('graph')[{
y:[1,2,1]
}, {
y:[3,4,2]
}])
.然后(gd=>{
gd.on('plotly_legenddoubleclick',()=>false)
})

您可以使用
htmlwidgets
将类似的JavaScript代码添加到R代码中

  • 选择mai-n Plotly DOM对象
  • 覆盖事件侦听器
  • 将其添加到R Plotly对象中
注:

  • 通过
    devtools::install\u github(“ropensci/Plotly”)
  • 如果它在RStudio中不起作用,则需要将图形导出为HTML

    library(plotly)
    library(htmlwidgets)
    
    p <- plot_ly() %>%
      add_trace(y = c(1,2,1), x = c(1,2,3), mode= "graph", type='scatter')    %>%
      add_trace(y = c(3,4,2), x = c(1,2,3), mode= "graph", type='scatter')
    
    javascript <- "var myPlot = document.getElementsByClassName('plotly')[0];
    myPlot.on('plotly_legenddoubleclick', function(d, i) {return false});"
    p <- htmlwidgets::prependContent(p, htmlwidgets::onStaticRenderComplete(javascript), data=list(''))
    p
    
    library(plotly)
    库(htmlwidgets)
    p%
    添加_trace(y=c(1,2,1),x=c(1,2,3),mode=“graph”,type='scatter')%>%
    添加轨迹(y=c(3,4,2),x=c(1,2,3),mode=“graph”,type=“scatter”)
    
    javascript如果是在2018年,我认为javascript已经不再是必要的了。您可以通过
    layout()
    设置图例的属性,直接在R中实现此结果:

    library(plotly)
    plot_ly()%>%
    添加轨迹(y=c(1,2,1),x=c(1,2,3),mode=“graph”)%>%
    添加轨迹(y=c(3,4,2),x=c(1,2,3),mode=“graph”)%>%
    布局(图例=列表(项目双击=假))
    
    谢谢!最近没有使用R,但如果有人确认,我会接受这个答案。