情节:悬停模板: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()