计划地将日期添加到悬停模板中

问题描述

我是一个非常陌生的人,在格式化悬停信息时遇到了一些麻烦。我试图使用hovertemplate来提供所需的特定文本,而不是将图形自动格式化为任何文本。我想提供一个日期列表,以及一个值和一些其他文本。但是,当尝试提供日期时,它似乎没有格式。我试图从下面将显示的密谋文档中做一个确切的例子。

import plotly.graph_objs as go

fig = go.figure()
fig.add_trace(
    go.Scatter(x=dict2['time'],y=dict2['2m_temp_prod'],mode='markers+lines',name='Sfc Temp',line=dict(color='red',width=4),hovertemplate='Day: %{2019-01-01|%A}'))

悬停文本无法正确转换日期,而是显示Day:%{2019-01-01 |%A}。有关如何解决此问题的任何想法?

编辑:这是一个更可行的示例。

我从xarray数据数组中加载了一些数据,并将其转换为字典。

dict2

{'time': 0    2020-08-12 00:00:00
 1    2020-08-12 06:00:00
 2    2020-08-12 12:00:00
 3    2020-08-12 18:00:00
 4    2020-08-13 00:00:00
              ...        
 56   2020-08-26 00:00:00
 57   2020-08-26 06:00:00
 58   2020-08-26 12:00:00
 59   2020-08-26 18:00:00
 60   2020-08-27 00:00:00
 Name: time,Length: 61,dtype: datetime64[ns],'2m_temp_prod': 0     84.0
 1     74.0
 2     71.0
 3     82.0
 4     79.0
       ... 
 56    79.0
 57    70.0
 58    67.0
 59    82.0
 60    80.0
 Name: 2m_temp_prod,dtype: float64,'2m_temp_area': 0     84.0
 1     74.0
 2     70.0
 3     82.0
 4     80.0
       ... 
 56    79.0
 57    70.0
 58    67.0
 59    82.0
 60    80.0
 Name: 2m_temp_area,dtype: float64}

如上所述,此数据可以很好地绘制为线图,但是悬浮文本是错误的。我尝试仅从上面的详细文档中复制示例日期,但最终我想提供要应用于悬浮文本而不是自动生成的悬浮文本的字符串日期列表。我想在文字上说:Day:星期二。该代码应采用日期,仅输出星期几。在这种情况下,2019年1月1日是星期二。供参考。

enter image description here

解决方法

对于hovertemplate,变量分别为xy

数据

import pandas as pd
import plotly.graph_objs as go
import numpy as np

n = 60
df = pd.DataFrame(
    {"time":pd.date_range(start="2020-08-12",freq="6H",periods=n),"2m_temp_prod":np.random.randint(low=65,high=85,size=n)})

情节

在这里,我在hovertemplate中添加了更多内容作为参考

fig = go.Figure()
fig.add_trace(
    go.Scatter(x=df['time'],y=df['2m_temp_prod'],mode='markers+lines',name='Sfc Temp',line=dict(color='red',width=4),hovertemplate="Date: %{x|%Y-%m-%d}<br>Day: %{x|%A}<br>Temp: %{y:.2f}"
              ))

enter image description here