问题描述
这是RStudio社区here in August和here in June的交叉帖子。几周前,我还打开了issue in r-plotly here。我仍然不确定要解决此问题是否需要其他plotly
功能,或者我是否缺少某些功能。
这几乎是2016 SO post with a similar problem的副本。该帖子与众不同,原因是:(1)它要求使用plotly
(而不是highcharter.js
),(2)它要求工具提示将出现在任何地方沿线段的悬停状态,例如不仅是沿该段的n
点,而且(3)自2016年以来r-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,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(未嵌入,因为在阅读文本时有点烦人)
几乎解决方案
在类似的2016 SO post中,“ dww”提供了一种奇妙的解决方法,即生成许多靠近在一起的点,然后使用add_trace
:
NP=100
mydat <- data.frame(t1=seq(1,3,len=NP),t2=seq(4,5,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,text="there")
此解决方案非常有帮助,但不能回答此问题,因为(1)用户一旦缩放到某个点之后,他们将不再有权使用工具提示(请参见下面的gif),并且(2)该解决方案是计算密集型-具有数百条轨迹,我不必要地生成了数千个不需要的点。
TL
使用plotly
(或javascript)的R端口,我是否可以产生一个具有自己工具提示的线段(与两个连续的直角坐标轴兼容)?
解决方法
根据软件包作者,此功能在r-plotly中尚不存在。看到这里:https://github.com/ropensci/plotly/issues/1832#issuecomment-675721763