Hi,
Event
was removed from Dash many versions ago.
To make it work, just remove the two callbacks that are using it and add clear_on_unhover=True
in dcc.Graph
, as explained in this post (note that this parameter also changed name!).
An updated version (dash v2) would look like:
from dash import Dash, Input, Output, dcc, html
app = Dash(
__name__, external_stylesheets=["https://codepen.io/chriddyp/pen/bWLwgP.css"]
)
app.layout = html.Div(
[
html.Div(
[
html.Div(
dcc.Graph(
id="graph-1",
figure={
"data": [
{
"x": [1, 2, 3],
"y": [4, 1, 5],
"mode": "markers",
"marker": {"size": 12},
}
]
},
),
className="six columns",
),
html.Div(
dcc.Graph(
id="graph-2",
figure={
"data": [
{
"x": [1, 2, 3],
"y": [2, 5, 10],
"mode": "markers",
"marker": {"size": 12},
}
]
},
clear_on_unhover=True,
),
className="six columns",
),
],
className="row",
),
html.Div(id="container"),
]
)
@app.callback(
Output("container", "children"),
[Input("graph-1", "hoverData"), Input("graph-2", "hoverData")],
)
def updateContent(hoverData1, hoverData2):
print(hoverData1)
print(hoverData2)
if hoverData1 is not None:
return html.Div([html.Div("Graph 1"), html.Pre(hoverData1)])
if hoverData2 is not None:
return html.Div([html.Div("Graph 2"), html.Pre(hoverData2)])
if __name__ == "__main__":
app.run_server(debug=True)