繁体   English   中英

Plotly:如何使用 plotly.express 饼图向 hover_data 添加元素?

[英]Plotly: How to add elements to hover_data using plotly.express piechart?

我正在使用 plotly.express 饼图帮助页面中的示例,并尝试将额外的元素iso_num添加到 hover_data 属性( iso_num是 gapminder 数据iso_num的 int64 列)

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()

将鼠标悬停在饼图的切片上,然后给出:

在此处输入图片说明

其中iso num值为%{customdata[1]}而不是列中的数值。

我错过了什么?

谢谢!

这似乎是一个遗物从回来时,有人说

哦,馅饼悬停是一团糟

这似乎已经解决了 但也许不适用于px.pie() 我尝试了多种方法,但我只能让customdata + hovertemplate方法适用于go.Pie而不适用于px.Pie 这是一个演示,说明如何为customdata分配值将使分配给go.Pie()任何变量可用于自定义hovertamplate:

阴谋:

在此处输入图片说明

代码:

import plotly.graph_objects as go
import plotly.express as px

df = px.data.gapminder().query("year == 2007").query("continent == 'Americas'")

fig = go.Figure(go.Pie(
    name = "",
    values = df['pop'],
    labels = df['country'],
    customdata=df['iso_num'],
    hovertemplate = "Country:%{label}: <br>Population: %{value} </br> iso num:%{customdata}"

))
fig.show()

我也找到了一种使用 Plotly Express 饼图的方法。 您可以使用update_traces来定义hover_template 似乎对hover_data / custom_data多个值进行拆分存在问题,并且所有值仅出现在 0 索引处,即两个值都在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()

悬停时:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM