#python #hover #plotly #plotly-dash
#python #наведите #графические объекты plotly #графические объекты plotly-dash
Вопрос:
Как я могу добавить информацию о наведении из столбца «значение» к этому рисунку?
import plotly-graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter(x = df.category,
y = df.type,
mode='markers',
marker={"color": df.value,
"colorscale": 'Sunsetdark',
"size": df["size"],
"showscale": True}
),
)
Мой фрейм данных выглядит следующим образом:
category value type size
8 B 95890.0 A 19.171122
35 G 95890.0 B 22.312869
67 V 4113.75 C 20.188301
.
.
.
Я попытался передать аргумент hoverinfo = df.value
в go.Scatter()
, но это не сработало. Это работало бы с plotly express, но я хочу использовать объект plotly graph. Ошибка гласит (недопустимые элементы — это первые 10 из моего df):
ValueError:
Invalid element(s) received for the 'hoverinfo' property of scatter
Invalid elements include: [95890.0, 69910.0, 4113.75, 40450.0, 77530.0, 67470.0, 97660.03, 644340.03, 79488.89, 45591.7399999998]
The 'hoverinfo' property is a flaglist and may be specified
as a string containing:
- Any combination of ['x', 'y', 'z', 'text', 'name'] joined with ' ' characters
(e.g. 'x y')
OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
- A list or array of the above
Ответ №1:
Вы могли бы передать df.value
как text
, а затем установить hoverinfo='text'
. Обратите внимание, что, поскольку вы установили mode='markers'
, текст не будет отображаться на самом графике.
import plotly.graph_objects as go
import pandas as pd
df = pd.DataFrame({'category': ['B', 'G', 'V'],
'value': [95890.0, 95890.0 , 4113.75],
'type': ['A', 'B', 'C'],
'size': [19.171122, 22.312869, 20.188301]})
fig = go.Figure()
fig.add_trace(go.Scatter(x=df.category,
y=df.type,
text=df.value,
hoverinfo='text',
mode='markers',
marker={'color': df.value,
'colorscale': 'Sunsetdark',
'size': df.size,
'showscale': True}))
fig.show()