如何更改 x 统一悬停模式中的日期标题

waa*_*777 1 r hover plotly

我在plotly(R) 中创建了一个带有辅助y 轴的图。我使用hoverfunction x Unified,但我想更改标题中的日期格式。数据是每周数据,所以现在你在胡佛中看到:2022年1月1日,但我想看到的是:1月1日(第01周)或1月1日 - 22年1月8日。我用tickprefix尝试了一些东西,但后来也刻度在变化,而不仅仅是悬停。

我现在的演示代码是:

library(plotly)
# dummy data
df_data1 = data.frame(date_input = seq(as.Date('2022/01/01'), as.Date('2022/07/01'), by="week")
                     , value=1:26)
df_data2 = data.frame(date_input = seq(as.Date('2022/01/01'), as.Date('2022/07/01'), by="week")
                      , value2=3:28)
                  
plot1 <- plot_ly()
    
plot1 <- plot1 %>% 
        add_trace(data = df_data1, x = ~date_input, y = ~value
                  , type = 'scatter', mode = "lines", yaxis = "y", line = list(color = '#E64B35FF', opacity = 0.8)
                  , showlegend = FALSE
                  , hovertemplate = ~paste('# Value1: %{y:.0f}<extra></extra>')) %>% 
        add_trace(data = df_data2, x = ~date_input, y = ~value2
                  , type = 'scatter', mode = "lines", yaxis = "y2", line = list(color = '#4DBBD5FF', opacity = 0.8)
                  , showlegend = FALSE
                  , hovertemplate = ~paste('# Value2: %{y:.0f}<extra></extra>'))
    
plot1 %>% 
      layout(
        font = list(size = 10),
        xaxis = list(title = list(text = '<b>Date<b>', font = list(size = 12))
                     , fixedrange = T, showgrid = FALSE, ticks = 'inside', type = 'date'
                     #, tickprefix = "Week of ", tickformat = '%d %b %y', ticktext = 'test'
                     ),
        yaxis = list(title = list(text = '<b>Number of value1<b>', font = list(size = 12, color = '#E64B35FF'))
                     , fixedrange = T
                     , rangemode = 'tozero', showgrid = FALSE, showline = T, ticks = 'inside'),
        yaxis2 = list(overlaying = 'y', side = 'right', fixedrange = T, rangemode = 'tozero', showgrid = FALSE, showline = T, ticks = 'inside'
                      , title = list(text = '<b>Number of value2<b>', font = list(size = 12, color = '#4DBBD5FF'))),
        margin = list(t = 50, r = 50),
        hovermode = "x unified"
      ) 
Run Code Online (Sandbox Code Playgroud)

现在的输出如下所示:

立即输出

所以我想更改黑色圆圈部分的日期格式(而不是刻度线)

Kat*_*Kat 5

您需要定义layout.xaxis.hoverformat.

一探究竟。

plot1 %>% 
  layout(
    font = list(size = 10),
    xaxis = list(title = list(text = '<b>Date<b>', font = list(size = 12)),
                 fixedrange = T, showgrid = FALSE, ticks = 'inside', 
                 type = 'date', hoverformat = "Week of %d %b %y"),   # <---- I'm new!
    yaxis = list(title = list(text = '<b>Number of value1<b>',
                              font = list(size = 12, color = '#E64B35FF')),
                 fixedrange = T, rangemode = 'tozero', showgrid = FALSE, 
                 showline = T, ticks = 'inside'),
    yaxis2 = list(overlaying = 'y', side = 'right', fixedrange = T,
                  rangemode = 'tozero', showgrid = FALSE, showline = T, ticks = 'inside',
                  title = list(text = '<b>Number of value2<b>', 
                  font = list(size = 12, color = '#4DBBD5FF'))),
    margin = list(t = 50, r = 50),
    hovermode = "x unified")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述