Plotly graph_objects добавляет столбец df в hovertemplate - PullRequest
0 голосов
/ 10 июля 2020

Я обычно пытаюсь воссоздать этот график и борюсь с добавлением столбца к hovertemplate графического Scatter. Вот рабочий пример:

import pandas as pd
import chart_studio.plotly as py
import plotly.graph_objects as go

dfs = pd.read_html('https://coronavirus.jhu.edu/data/mortality', header=0)
df = dfs[0]
percent = df['Case-Fatality'] # This is my closest guess, but isn't working
fig = go.Figure(data=go.Scatter(x=df['Confirmed'],
                               y = df['Deaths'],
                               mode='markers',
                               hovertext=df['Country'],
                               hoverlabel=dict(namelength=0),
                               hovertemplate = '%{hovertext}<br>Confirmed: %{x}<br>Fatalities: %{y}<br>%{percent}',
                               
                               ))
fig.show()

Я хотел бы, чтобы столбец Cast-Fatality отображался под {percent}

Я также пробовал использовать вызов Scatter() строка для text = [df['Case-Fatality']], и переключение {percent} на {text}, как показано в в этом примере , но это не извлекается из фрейма данных, как ожидалось.

Я пробовал перепланировать это как px, следуя этому примеру , но он выдает ошибку dictionary changed size during iteration, и я думаю, что использование go может быть проще, чем px, но я новичок в графике.

Заранее благодарим за понимание того, как добавить столбец к наведению.

Ответы [ 2 ]

2 голосов
/ 10 июля 2020

Ссылка, которой вы поделились, не работает. Вы ищете что-то подобное?

import pandas as pd
import plotly.express as px

px.scatter(df,
           x="Confirmed",
           y="Deaths",
           hover_name="Country",
           hover_data={"Case-Fatality":True})

Затем, если вам нужно использовать полужирный шрифт или изменить hover_template, вы можете выполнить последний шаг в этом ответе

0 голосов
/ 10 июля 2020

Черпая вдохновение из другого SO вопрос / ответ , я обнаружил, что это работает должным образом и позволяет добавлять несколько столбцов к данным при наведении:

import pandas as pd
import plotly.express as px

fig = px.scatter(df,
           x="Confirmed",
           y="Deaths",
           hover_name="Country",
           hover_data=[df['Case-Fatality'], df['Deaths/100K pop.']])
fig.show()
...