【问题标题】:Customizing "x unified" hover labels in plotly在 plotly 中自定义“x 统一”悬停标签
【发布时间】:2021-08-14 18:38:59
【问题描述】:

有什么方法可以格式化/修改 "x unified" 在 plotly 中的悬停标签吗?

例如,在本例中,我能否将df$dow 的值(即星期几,此处仅取决于x)显示为位于标签顶部x 值下方的附加行?

library(plotly)
dates <- seq(as.Date('2000-01-01'), as.Date('2002-01-01'), 'day')
N <- length(dates)
df <- data.frame(date=dates, y1=cos((1:N)/60), y2 = sin((1:N)/30), dow = weekdays(dates))

p <- plot_ly(data=df, type='scatter', mode='lines') %>%  
       add_trace(x = ~date, y = ~y1)  %>%
       add_trace(x = ~date, y = ~y2)  %>%
       layout(hovermode = 'x unified', hoverdistance = 1)
p

另外,我可以添加文字吗(例如,让标签说“日期:2000 年 6 月 1 日”而不是“2000 年 6 月 1 日”?

例子是在 R 中,但如果有 JS 解决方案也将不胜感激。

【问题讨论】:

    标签: javascript r plotly r-plotly


    【解决方案1】:

    看起来一种可能的解决方法是使用该信息添加隐藏跟踪,如下所示。欢迎提供更好的解决方案。

    请注意,这依赖于 y=0 始终在图中,无论显示什么轨迹(否则隐藏的轨迹会影响 Y 轴缩放),如果可以避免这种情况,idk。

    library(plotly)
    dates <- seq(as.Date('2000-01-01'), as.Date('2002-01-01'), 'day')
    N <- length(dates)
    df <- data.frame(date=dates, y1=cos((1:N)/60), y2 = sin((1:N)/30), dow = weekdays(dates))
    htext <- sprintf('%s\n%s', df$date, df$dow)
    
    p <- plot_ly(data=df, type='scatter', mode='lines', source = 'Z') %>%
        add_trace(x = ~date, y = 0, hoverinfo='text', text = htext,
                  mode = 'markers', marker=list(size=0, color='white'),
                  showlegend=FALSE, opacity=0) %>%
           add_trace(x = ~date, y = ~y1, hoverinfo='y+name')  %>%
           add_trace(x = ~date, y = ~y2, hoverinfo='y+name')  %>%
           layout(hovermode = 'x unified', hoverdistance = 1)
    p
    

    【讨论】:

      猜你喜欢
      • 2020-09-20
      • 2021-06-20
      • 2018-05-10
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 2018-08-30
      相关资源
      最近更新 更多