我在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)
现在的输出如下所示:
所以我想更改黑色圆圈部分的日期格式(而不是刻度线)
您需要定义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)
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |