[英]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.