Plotly:隐藏 hoverlabel,同时在回调中保留 hoverData
Plotly: Hide the hoverlabel while retaining hoverData in callback
有没有办法在 Dash 回调中保留 hoverData 的同时隐藏 plotly 图中的 hoverlabel?
我到处都找过,最密切相关的 here,但似乎没有任何效果。 hoverinfo
参数在 update_layout
中不是有效参数,hovertemplate
也不是。这是我最接近的隐藏 hoverlabel
的尝试,但不幸的是不允许 hoverData
回调。
import plotly.express as px
from PIL import Image
import numpy as np
ss_rgb = np.array(Image.open('test.png'))
fig = px.imshow(ss_rgb)
fig.update_xaxes(visible=False)
fig.update_yaxes(visible=False)
fig.update_layout(
dragmode=False,
hovermode=False,
#hoverinfo='none', # invalid parameter
#hovertemplate=False # invalid parameter
)
plotly forum post you linked 有答案。您所尝试的问题是 hoverinfo
和 hovertemplate
不是使用 fig.update_layout
设置的有效属性。然而,它们可以设置为 fig.update_traces
:
fig.update_traces(hoverinfo='none', hovertemplate=None)
完整的可重现示例:
import json
import plotly.express as px
from dash import Dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Output, Input
df = px.data.gapminder().query("country=='Canada'")
fig = px.line(df, x="year", y="lifeExp", title="Life expectancy in Canada")
fig.update_xaxes(visible=False)
fig.update_yaxes(visible=False)
fig.update_traces(hoverinfo="none", hovertemplate=None)
app = Dash(__name__)
app.layout = html.Div([dcc.Graph(id="graph", figure=fig), html.Div(id="output")])
@app.callback(Output("output", "children"), Input("graph", "hoverData"))
def display_hover_data(hoverData):
return json.dumps(hoverData, indent=2)
if __name__ == "__main__":
app.run_server()
有没有办法在 Dash 回调中保留 hoverData 的同时隐藏 plotly 图中的 hoverlabel?
我到处都找过,最密切相关的 here,但似乎没有任何效果。 hoverinfo
参数在 update_layout
中不是有效参数,hovertemplate
也不是。这是我最接近的隐藏 hoverlabel
的尝试,但不幸的是不允许 hoverData
回调。
import plotly.express as px
from PIL import Image
import numpy as np
ss_rgb = np.array(Image.open('test.png'))
fig = px.imshow(ss_rgb)
fig.update_xaxes(visible=False)
fig.update_yaxes(visible=False)
fig.update_layout(
dragmode=False,
hovermode=False,
#hoverinfo='none', # invalid parameter
#hovertemplate=False # invalid parameter
)
plotly forum post you linked 有答案。您所尝试的问题是 hoverinfo
和 hovertemplate
不是使用 fig.update_layout
设置的有效属性。然而,它们可以设置为 fig.update_traces
:
fig.update_traces(hoverinfo='none', hovertemplate=None)
完整的可重现示例:
import json
import plotly.express as px
from dash import Dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Output, Input
df = px.data.gapminder().query("country=='Canada'")
fig = px.line(df, x="year", y="lifeExp", title="Life expectancy in Canada")
fig.update_xaxes(visible=False)
fig.update_yaxes(visible=False)
fig.update_traces(hoverinfo="none", hovertemplate=None)
app = Dash(__name__)
app.layout = html.Div([dcc.Graph(id="graph", figure=fig), html.Div(id="output")])
@app.callback(Output("output", "children"), Input("graph", "hoverData"))
def display_hover_data(hoverData):
return json.dumps(hoverData, indent=2)
if __name__ == "__main__":
app.run_server()