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

Python Plotly:悬停文本字段中的日期格式问题,python,plotly,Python,Plotly,我正在使用plotly express时间轴功能绘制Gannt图表。我对日期字段的悬停文本呈现有问题 plotly version: 4.5.4 在这里给出的原始示例中,Finish字段以正确的格式呈现为%Y-%m-%d 将plotly.express导入为px 作为pd进口熊猫 df=pd.DataFrame([ dict(Task=“Job A”,Start='2009-01-01',Finish='2009-02-28',Resource=“Alex”) ]) 图=px.时间线(df,x

我正在使用plotly express时间轴功能绘制Gannt图表。我对日期字段的悬停文本呈现有问题

plotly version: 4.5.4
在这里给出的原始示例中,Finish字段以正确的格式呈现为
%Y-%m-%d

将plotly.express导入为px
作为pd进口熊猫
df=pd.DataFrame([
dict(Task=“Job A”,Start='2009-01-01',Finish='2009-02-28',Resource=“Alex”)
])
图=px.时间线(df,x_start=“start”,x_end=“Finish”,y=“Task”,color=“Resource”)
图更新(autorange=“reversed”)
图2(图3)
我尝试使用下面的代码自定义悬停文本字段

将plotly.express导入为px
作为pd进口熊猫
df=pd.DataFrame([
dict(Task=“Job A”,Start='2009-01-01',Finish='2009-02-28',Resource=“Alex”)
])
图=px.时间线(df,x_start=“start”,x_end=“Finish”,y=“Task”,color=“Resource”
,hover_data={“Start”:True,
“完成”:对,
“任务”:没错,
“资源”:False}
)
图2(图3)
现在,显示的Finish字段是
Start
Finish
之间的差异(以毫秒为单位)。在上述示例中,“完成”值显示为5011200000

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

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


有没有一种方法可以在不复制列的情况下获得列的正确呈现?

您可以使用
hovertemplate
更改悬停工具提示中显示的值的格式,请参见Plotly网站和Plotly上的此项

根据您的代码,我在下面提供了一个示例,其中开始日期和结束日期都是
%Y-%m-%d
格式。请注意,
x_start
x_end
对应于绘图图形字典中的
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()
将plotly.express导入为px
作为pd进口熊猫
df=pd.DataFrame([
dict(Task=“Job A”,Start='2009-01-01',Finish='2009-02-28',Resource=“Alex”),
dict(Task=“Job”,Start='2009-03-01',Finish='2009-04-30',Resource=“Anna”)
])
图=px.时间线(df,x_start=“start”,x_end=“Finish”,y=“Task”,color=“Resource”)
fig.update_跟踪(hovertemplate=“开始:%{base |%Y-%m-%d}
” “结束:%{x |%Y-%m-%d}
” “任务:%{y}”) 图2(图3)

hovertemplate确实解决了格式问题,但我失去了从数据框显示另一个字段的能力。例如,如果我想在悬停文本中显示优先级列,是否可以使用悬停模板?是的,您可以使用
hovertemplate
customdata
,请参见此示例。感谢您的帮助。我面临的问题似乎有错误记录。我使用hover_数据在同一数据帧中呈现数据。使用hovertemplate,我必须创建一个副本或不同的数据帧来呈现其他字段。我现在将保留重复字段。