Plotly: Как добавить элементы в hover_data, используя plotly. express piechart? - PullRequest
2 голосов
/ 11 февраля 2020

Я играю с примерами из plotly. express Страница справки круговой диаграммы и пытаюсь добавить дополнительный элемент iso_num в свойство hover_data (iso_num - это столбец int64 в кадре gapminder data)

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

При наведении курсора на срез диаграммы p ie получается:

enter image description here

где iso num значение %{customdata[1]} вместо значения цифры 1025 * из столбца.

Чего мне не хватает?

Спасибо!

1 Ответ

1 голос
/ 11 февраля 2020

Кажется, это reli c со спины, когда было заявлено , что

Oh p ie зависание - большой беспорядок

Который с тех пор, похоже, был разрешен . Но, возможно, не для px.pie()? Я перепробовал множество подходов, но я могу использовать подход customdata + hovertemplate для работы go.Pie, а не для px.Pie. Вот демонстрация того, как присвоение значений customdata сделает любую переменную иначе не , присвоенной go.Pie(), доступной для пользовательской таблицы наведения:

Сюжет:

enter image description here

Код:

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