首页 > 解决方案 > 控制悬停文本的按钮

问题描述

我正在制作带有很多痕迹的痕迹类型图,结果是很多悬停文本。但是,Y 值在某个(正常)Y 范围内的轨迹与观察者的关系不大。因此,我想在我的绘图中添加按钮,当按下这些按钮时,会部分打开和关闭悬停文本,因此只显示极端 Y 值的悬停文本。

我已经编写了代码以在悬停文本的定义中删除正常 Y 范围的悬停文本:

  # Construct hovertext
  tmp$hovertext <- as.character(tmp$value)
  
  # SD values between -2 and 2 replaces hovertext with ""
  tmp$hovertext[abs(tmp$SD) < 2] <- ""

我想知道这作为按钮定义的输入是否有用。

注意:我一直在寻找这个没有结果。如果它是重复的,我很抱歉。

提前致谢。

延斯

标签: rbuttonplotly

解决方案


我认为您可以结合layout updatemenusa buttonand restyle... 也许您可以根据需要调整下面的代码?可能这不是最有效的解决方案,但这些天我正在自己尝试情节(没有专家解决方案:D)

dat <- dplyr::tibble(X=rnorm(10),
                     Y=rnorm(10),
                     LAB1=X,
                     LAB2=c(rep("",8),"1","2"))

plotly::plot_ly() %>%
    plotly::add_trace(data=dat,
                      x=~X,
                      y=~Y,
                      text=paste("X:",dat$LAB1),
                      hoverinfo="text",
                      type="scatter",
                      mode="markers") %>%
    plotly::layout(
        updatemenus=list(
            list(
                type = "buttons",
                y = 0.8,
                buttons = list(
                    list(method = "restyle",
                         args = list("text",paste("X:",dat$LAB1)),
                         label = "LABEL_1"),
                    list(method = "restyle",
                         args = list("text",paste("X:",dat$LAB2)),
                         label = "LABEL_2")))))

推荐阅读