Plotly:悬停文本字段中的日期格式问题

moh*_* ro 2 python plotly

我正在使用plotlyexpress时间轴函数绘制甘特图。我在日期字段的悬停文本呈现方面遇到问题。

plotly version: 4.5.4
Run Code Online (Sandbox Code Playgroud)

此处给出的原始示例https://plotly.com/python/gantt/“完成”字段以正确的格式呈现为%Y-%m-%d

plotly version: 4.5.4
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码自定义悬停文本字段。

import plotly.express as px
import pandas as pd

df = pd.DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28', Resource="Alex")
])

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Resource")
fig.update_yaxes(autorange="reversed")
fig.show()

Run Code Online (Sandbox Code Playgroud)

现在,显示的FinishStart字段是和的差值(Finish以毫秒为单位)。在上面的示例中,“完成”值显示为5011200000

Finish我需要在悬停文本中显示原始值。在这种情况下2009-02-28

我只能通过在数据框中创建 Finish 列的副本并将其用于悬停文本来解决此问题。

有没有办法在不重复的情况下获得正确的列渲染?

Fla*_*ino 6

您可以使用 更改悬停工具提示中显示的值的格式hovertemplate,请参阅 Plotly 网站上的此示例以及 Plotly文档

我根据您的代码在下面提供了一个示例,其中开始日期和结束日期均采用%Y-%m-%d格式。请注意,x_startx_end对应于Plotly 图形字典中的base和键。x

import plotly.express as px
import pandas as pd

df = pd.DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28', Resource="Alex"),
    dict(Task="Job B", Start='2009-03-01', Finish='2009-04-30', Resource="Anna")
])

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Resource")

fig.update_traces(hovertemplate="Start: %{base|%Y-%m-%d}<br>"
                                "End: %{x|%Y-%m-%d}<br>"
                                "Task: %{y}")

fig.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述