web-dev-qa-db-fra.com

Plotly: Comment ajouter des éléments pour survoler les données à l'aide du graphique à secteurs plotly.express?

Je joue avec des exemples de plotly.express page d'aide de morcea et j'essaye d'ajouter un élément supplémentaire iso_num à la propriété hover_data (iso_num est une colonne int64 dans le dataframe gapminder)

import plotly.express as px
df = px.data.gapminder().query("year == 2007").query("continent == 'Americas'")
fig = px.pie(df, values='pop', names='country',
             title='Population of American continent',
             hover_data=['lifeExp','iso_num'], labels={'lifeExp':'life expectancy','iso_num':'iso num'
                                                      })
fig.update_traces(textposition='inside', textinfo='percent+label')
fig.show()

Le survol de la tranche du graphique à secteurs donne alors ceci:

enter image description here

iso num La valeur est %{customdata[1]} au lieu de la valeur numérique de la colonne.

Qu'est-ce que je rate?

Merci!

4
ambushed

J'ai également trouvé un moyen de le faire avec le graphique à secteurs Plotly Express. Vous pouvez utiliser update_traces définir hover_template. Il semble qu'il y ait un problème avec le fractionnement sur plusieurs valeurs pour hover_data/custom_data et toutes les valeurs sont présentes uniquement à l'index 0, c'est-à-dire que les deux valeurs sont à customdata[0].

import plotly.express as px
df = px.data.gapminder().query("year == 2007").query("continent == 'Americas'")
fig = px.pie(df, values='pop', names='country',
             title='Population of American continent',
             custom_data=['lifeExp','iso_num'], labels={'lifeExp':'life expectancy','iso_num':'iso num'
                                                      })
fig.update_traces(textposition='inside', textinfo='percent+label',\
                 hovertemplate = "Country:%{label}: <br>Population: %{value} </br>(life expentancy, iso num) : %{customdata}"
)

fig.show()

En vol stationnaire:

enter image description here

0
user3544913