Plotly add_segment() 沿整个段带有工具提示

Plotly add_segment() with tooltip along entire segment

这是来自 RStudio 社区 here in August and here in June. A couple of weeks ago, I also opened an issue in r-plotly here 的跨post。我仍然不确定解决这个问题是否需要额外的 plotly 功能,或者我是否遗漏了什么。

这几乎是 的重复。这个 post 是不同的,因为:(1) 它需要使用 plotly(而不是 highcharter.js),(2) 它需要在悬停 任何地方 沿线段,例如不仅在该段的 n 个点上,而且 (3) 自 2016 年以来 r-plotly 的语法发生了细微变化。


问题

在plotly中,可以使用add_segments()在两点之间添加线段。

当我将鼠标悬停在段上的 任意位置 上时,我如何才能向用户显示工具提示,而不仅仅是两端?从 javascript 的角度来看,这似乎应该是可行的,但我似乎无法让它与 plotly 一起工作。

示例:

library(plotly)
my_data <- data.frame(
  x = c(1, 6), xend = c(5, 10),
  y = c(1, 2), yend = c(1, 2),
  text = c("First", "Second")
)

plot_ly(my_data, x = ~x, xend = ~xend, y = ~y, yend = ~yend, 
        text = ~text, hoverinfo = "text") %>%
  add_segments()

See a gif demonstration here(没有嵌入,因为它在阅读文本时有点烦人)

几乎解决

在类似的 中,'dww' 通过生成许多靠在一起的点,然后使用 add_trace:

提供了一个极好的解决方法
NP=100
mydat <- data.frame(t1=seq(1,3,len=NP), t2=seq(4,5,len=NP), y1=rep(1,NP),  y2=rep(2,NP))

plot_ly(data=mydat) %>%
  add_trace(x=~t1, y=~y1, mode="lines", hoverinfo="text", text="hello") %>%
  add_trace(x=~t2, y=~y2, mode="lines", hoverinfo="text", text="there") 

这个解决方案非常有用,但没有回答这个问题,因为 (1) 一旦用户缩放超过某个点,他们将无法再访问工具提示(请参见下面的 gif),以及 (2) 这个解决方案是计算密集型的——有数百条轨迹,我不必要地生成了数千个不需要的点。

gif demonstration

TL

使用 plotly(或 javascript)的 R 端口,我可以生成一个具有自己的工具提示的段(与两个连续的笛卡尔轴兼容)吗?

根据软件包作者的说法,r-plotly 中尚不存在此功能。看这里:https://github.com/ropensci/plotly/issues/1832#issuecomment-675721763