我有一个数据集df,在这里我试图修改并向已经建立的悬停文本添加一些额外的文本
以下是数据:
POD Start End Diff Percent Date
IAD 4/1/2019 5/1/2019 160.4279 11.10809 04-01-2019 to 05-01-2019
IAD 5/1/2019 6/1/2019 136.0248 8.476798 05-01-2019 to 06-01-2019
IAD 6/1/2019 7/1/2019 174.0513 9.998946 06-01-2019 to 07-01-2019
IAD 7/1/2019 8/1/2019 112.0424 5.851551 07-01-2019 to 08-01-2019
IAD 8/1/2019 9/1/2019 141.8488 6.998691 08-01-2019 to 09-01-2019
IAD 9/1/2019 10/1/2019 103.5522 4.774984 09-01-2019 to 10-01-2019
IAD 10/1/2019 11/1/2019 125.6087 5.528085 10-01-2019 to 11-01-2019
IAD 11/1/2019 12/1/2019 145.2591 6.058016 11-01-2019 to 12-01-2019
IAD 12/1/2019 1/1/2020 115.5121 4.542251 12-01-2019 to 01-01-2020
IAD 1/1/2020 2/1/2020 185.7191 6.985673 01-01-2020 to 02-01-2020
IAD 2/1/2020 3/1/2020 126.7386 4.455896 02-01-2020 to 03-01-2020
IAD 3/1/2020 4/1/2020 231.3461 7.786734 03-01-2020 to 04-01-2020
IAD 4/1/2020 5/1/2020 97.02587 3.02981 04-01-2020 to 05-01-2020
IAD 5/1/2020 6/1/2020 42.85235 1.298792 05-01-2020 to 06-01-2020
IAD 6/1/2020 7/1/2020 124.666 3.729997 06-01-2020 to 07-01-2020
IAD 7/1/2020 8/1/2020 357.9974 10.32609 07-01-2020 to 08-01-2020
IAD 8/1/2020 9/1/2020 490.9587 12.8358 08-01-2020 to 09-01-2020
IAD 9/1/2020 10/1/2020 204.5478 4.739428 09-01-2020 to 10-01-2020
IAD 10/1/2020 11/1/2020 287.6025 6.362292 10-01-2020 to 11-01-2020
SJCtest 4/1/2019 5/1/2019 12.38486 5.780551 04-01-2019 to 05-01-2019
SJCtest 5/1/2019 6/1/2019 -2.61735 -1.15487 05-01-2019 to 06-01-2019
SJCtest 6/1/2019 7/1/2019 -5.6187 -2.50814 06-01-2019 to 07-01-2019
SJCtest 7/1/2019 8/1/2019 3.204252 1.467153 07-01-2019 to 08-01-2019
SJCtest 8/1/2019 9/1/2019 -25.3782 -11.4521 08-01-2019 to 09-01-2019
SJCtest 9/1/2019 10/1/2019 -10.9717 -5.59137 09-01-2019 to 10-01-2019
代码如下:(一位SO成员协助我编写了此代码)
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
df = pd.read_csv("df.csv")
fig = px.line(df, x="Date", y="Diff", color = 'POD')
import plotly.graph_objects as go
included = 0
lim = {'IAD': {'lower': 90,'upper': 350, 'color':'yellow'},
'SJCtest': {'lower': 10,'upper': 12, 'color':'green'}}
for i, d in enumerate(fig.data):
for j, y in enumerate(d.y):
if y < lim[d.name]['lower'] or y > lim[d.name]['upper']:
if j == 0:
fig.add_traces(go.Scatter(x=[fig.data[i]['x'][j]],
y=[fig.data[i]['y'][j]],
mode = 'markers',
marker = dict(color=lim[d.name]['color']),
name = d.name + ' threshold',
legendgroup = d.name + ' threshold'))
included = included + 1
else:
fig.add_traces(go.Scatter(x=[fig.data[i]['x'][j-1], fig.data[i]['x'][j]],
y=[fig.data[i]['y'][j-1], fig.data[i]['y'][j]],
mode = 'lines',
# marker = dict(color='yellow'),
line = dict(width = 6, color = lim[d.name]['color']),
name = d.name + ' threshold',
legendgroup = d.name + ' threshold',
showlegend = False if included > 0 else True,
))
included = included + 1
fig.show()
这里是可视化
这看起来很好,但我希望在悬停文本中添加一些额外的行,例如如下所示的文本:
POD: IAD
Date: ....(the appropriate date)
Percent: ...(the appropriate percent value)
我已经阅读了文档,并尝试实施:
fig = (hover_name="", hover_data=["", ""]
我没有得到正确的结果。 如有任何建议,我们将不胜感激
添加突出显示的系列时,只需在
fig.add_traces(go.Scatter()
中包含以下内容:绘图
完整代码:
尝试以下步骤:
-调用
px.line
时,将参数hover_data
添加到fig:-将参数
customdata = fig.data[i].customdata
添加到两个go.Scatter
调用中-定义所需的悬停模板:
-最后,您可以使用以下命令更改鼠标悬停模板:
fig.update_traces(hovertemplate=template)
希望它能起作用
整个代码如下所示:
相关问题 更多 >
编程相关推荐