R 禁用图例双击事件
如何在plotly for R中禁用“双击图例以隔离一条轨迹”交互?我想要一个双击,只有两次点击的效果 下面是一个如何使用Javascript执行此操作的示例: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.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已经不再是必要的了。您可以通过
设置图例的属性,直接在R中实现此结果: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”)%>% 布局(图例=列表(项目双击=假))