情节:悬停模板:custom_data 未显示
Plotly: hovertemplate : custom_data not showing
我有以下数据框
publicationDate signingDate nif_contratante contratante ... contratada contract_date price reported
0 24-02-2020 04-02-2020 600081290.0 Agrupamento de Escolas de Porto de Mós ... The Irish College of English Limited 2020-02-04T00:00:00Z 7914 NaN
1 26-02-2020 13-02-2020 600000052.0 Instituto de Oftalmologia do Dr. Gama Pinto ... Instituto de Soldadura e Qualidade 2020-02-13T00:00:00Z 90 NaN
2 27-02-2020 27-02-2020 501442600.0 Instituto do Emprego e da Formação Profissiona... ... ASSOCIAÇÃO HUMANITÁRIA DOS BOMBEIROS VOLUNTÁRI... 2020-02-27T00:00:00Z 500 NaN
以及以下代码:
data = pd.read_csv('basecovid19_ad.csv')
chart3=px.bar(x=data['contract_date'], y=data['price'], color= data['price'],
range_x=['2020-03-01','2021-05-01'],
labels=dict(x="Data de Publicação", y="Valor (M€)", color="Valor em Euros",
custom_data=[data['contratante'], data['contratada']])
)
chart3.update_xaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_yaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_traces(
hovertemplate="<br>".join([
"DATA: %{x}",
"VALOR: %{y}",
"Entidade: {contratante}",
"Empresa: {contratada}",
])
)
chart3.show()
这是结果:
出于某种原因 custom_data
没有从 data
数据帧中提取值,或者我的脚本有一些我无法解决的错误。
任何帮助,将不胜感激。
提前致谢!
您是否可能只是在 {contratante}
和 {contratada}
之前遗漏了一个 %
?
您的代码在标签字典中包含错误的大括号。另外,因为是express,所以可以指定df来指定列名。我正在修复自定义数据。另外,正如您在评论中提到的,您需要 % 作为标识符,并且需要在 custom_data.
的索引中指定它
import plotly.express as px
chart3=px.bar(data, x=data['contract_date'], y=data['price'], color=data['price'],
range_x=['2020-01-01','2021-05-01'],
labels=dict(x="Data de Publicação", y="Valor (M€)", color="Valor em Euros"),
custom_data=['contratante', 'contratada']
)
chart3.update_xaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_yaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_traces(
hovertemplate="<br>".join([
"DATA: %{x}",
"VALOR: %{y}",
"Entidade: %{customdata[0]}",
"Empresa: %{customdata[1]}",
])
)
chart3.show()
我有以下数据框
publicationDate signingDate nif_contratante contratante ... contratada contract_date price reported
0 24-02-2020 04-02-2020 600081290.0 Agrupamento de Escolas de Porto de Mós ... The Irish College of English Limited 2020-02-04T00:00:00Z 7914 NaN
1 26-02-2020 13-02-2020 600000052.0 Instituto de Oftalmologia do Dr. Gama Pinto ... Instituto de Soldadura e Qualidade 2020-02-13T00:00:00Z 90 NaN
2 27-02-2020 27-02-2020 501442600.0 Instituto do Emprego e da Formação Profissiona... ... ASSOCIAÇÃO HUMANITÁRIA DOS BOMBEIROS VOLUNTÁRI... 2020-02-27T00:00:00Z 500 NaN
以及以下代码:
data = pd.read_csv('basecovid19_ad.csv')
chart3=px.bar(x=data['contract_date'], y=data['price'], color= data['price'],
range_x=['2020-03-01','2021-05-01'],
labels=dict(x="Data de Publicação", y="Valor (M€)", color="Valor em Euros",
custom_data=[data['contratante'], data['contratada']])
)
chart3.update_xaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_yaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_traces(
hovertemplate="<br>".join([
"DATA: %{x}",
"VALOR: %{y}",
"Entidade: {contratante}",
"Empresa: {contratada}",
])
)
chart3.show()
这是结果:
出于某种原因 custom_data
没有从 data
数据帧中提取值,或者我的脚本有一些我无法解决的错误。
任何帮助,将不胜感激。
提前致谢!
您是否可能只是在 {contratante}
和 {contratada}
之前遗漏了一个 %
?
您的代码在标签字典中包含错误的大括号。另外,因为是express,所以可以指定df来指定列名。我正在修复自定义数据。另外,正如您在评论中提到的,您需要 % 作为标识符,并且需要在 custom_data.
的索引中指定它import plotly.express as px
chart3=px.bar(data, x=data['contract_date'], y=data['price'], color=data['price'],
range_x=['2020-01-01','2021-05-01'],
labels=dict(x="Data de Publicação", y="Valor (M€)", color="Valor em Euros"),
custom_data=['contratante', 'contratada']
)
chart3.update_xaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_yaxes(title_font=dict(size=18, family='Lato', color='#1a1a1e'))
chart3.update_traces(
hovertemplate="<br>".join([
"DATA: %{x}",
"VALOR: %{y}",
"Entidade: %{customdata[0]}",
"Empresa: %{customdata[1]}",
])
)
chart3.show()