将日期添加到悬停模板中

Eli*_*sky 6 python plotly

我对情节非常陌生,在格式化悬停信息时遇到了一些麻烦。我正在尝试使用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}'))
Run Code Online (Sandbox Code Playgroud)

悬停文本无法正确转换日期,而是显示 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, Length: 61, 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, Length: 61, dtype: float64}
Run Code Online (Sandbox Code Playgroud)

该数据可以很好地绘制为线图,但悬停文本是错误的,如上所述。我尝试仅从上面的绘图文档中复制示例日期,但最终我想提供要应用于悬停文本而不是自动生成的悬停文本的字符串日期列表。我希望悬停文本显示:日期:星期二。该代码应该获取日期并仅输出星期几。在本例中,2019 年 1 月 1 日是星期二。供参考的图。

在此输入图像描述

rpa*_*nai 7

对于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)})
Run Code Online (Sandbox Code Playgroud)

阴谋

在这里我添加了更多内容作为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}"
              ))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述