Если вы ищете решение da sh, не так уж сложно добавить ползунок и фильтр в обратном вызове, как показано ниже
# app.py
import pandas as pd
import plotly.graph_objs as go
import plotly.express as px
import dash
import dash_core_components as dcc
import dash_html_components as html
# Data
data = {'vocab':['today', 'started', 'half', 'slowly', "probably", "took", "two", "daily", "change", "life",
"effect", "wrong", "talk", "hard"],
'x':[-12.9, -23.4, -7.1, -6.3, -20.5, -5.8, -32.6, -8.3, -4.2, -12.3, -9.6, -4.2, - 20.4, - 15.7],
'y':[21.6, 21.8, 33.2, 22.7, 34, 0.4, 22.4, 31.9, 17.9, 20.13, 25.7, 22.3, 26.8, 19.2],
'freq':[277, 491, 264, 138, 250, 279, 753, 93, 77, 113, 425, 122, 326, 345]}
df = pd.DataFrame(data)
app = dash.Dash()
app.layout = html.Div([
dcc.Slider(
id='my-slider',
min=50,
max=1000,
step=50,
value=50,
marks={i: i for i in range(50,1050, 50)}
),
html.Hr(),
dcc.Graph(id='display-selected-values',
config={'scrollZoom': True}),
])
@app.callback(
dash.dependencies.Output('display-selected-values', 'figure'),
[dash.dependencies.Input('my-slider', 'value')])
def update_output(value):
ddf = df[df["freq"]>value]
fig = go.Figure()
config = dict({'scrollZoom': True})
fig.add_trace(go.Scatter(x = ddf["x"],
y = ddf["y"],
mode = "markers + text",
text = ddf['vocab'],
marker = dict(
size = ddf['freq'],
sizemode = 'area',
sizeref=2.*max(ddf['freq'])/(295.**2))))
fig.update_layout(title = "help",
hovermode='closest',
yaxis=dict(zeroline=False, showgrid=False),
xaxis=dict(zeroline=False, showgrid=False),
showlegend = False,
width = 1000,
height = 800,
template = "presentation")
return fig
if __name__ == '__main__':
app.run_server()
Если вам нужно только графическое решение, вы должны создать график для каждого параметра в вашем слайдере и поиграйте с видимой опцией. См. до c