Plotly:如何使用 plotly.express 饼图向 hover_data 添加元素?
Plotly: How to add elements to hover_data using plotly.express piechart?
我正在玩 plotly.express piechart help page 中的示例,并尝试向 hover_data 属性 添加一个额外的元素 iso_num
(iso_num
是 gapminder 数据框中的一个 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]}
而不是列中的数值。
我错过了什么?
谢谢!
这似乎是一个relic from back when it was stated that
Oh pie hover is a big mess
从那以后似乎是 resolved。但也许不适合 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()
悬停时:
我正在玩 plotly.express piechart help page 中的示例,并尝试向 hover_data 属性 添加一个额外的元素 iso_num
(iso_num
是 gapminder 数据框中的一个 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]}
而不是列中的数值。
我错过了什么?
谢谢!
这似乎是一个relic from back when it was stated that
Oh pie hover is a big mess
从那以后似乎是 resolved。但也许不适合 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()
悬停时: