В одностраничном приложении Dash by Plotly Я хочу показать много похожих графиков.
Для этого я создал «фабричный класс», который может генерировать много графиков.
Этот класс предоставляет методы для использования в коде app.layout
и @app.callback
приложения Dash. Пример app.py
с двумя графиками выглядит так:
import ...
app = dash.Dash(__name__)
graph_A = GraphFactory(feature="A")
graph_B = GraphFactory(feature="B")
app.layout = html.Div([
graph_A.graph(),
graph_B.graph(),
])
@app.callback(
graph_A.callback_output(), graph_A.callback_inputs()
)
def update_A(value):
return graph_A.callback_update(value)
@app.callback(
graph_B.callback_output(), graph_B.callback_inputs()
)
def update_B(value):
return graph_B.callback_update(value)
Это отлично работает. Однако я хочу отобразить много графиков из списка GraphFactory
объектов. Создать объекты и поместить их в макет приложения легко:
graph_list = [ GraphFactory(feature=f) for f in feature_list ]
app.layout = html.Div([
g.graph() for g in graph_list
])
Но ** как я могу добавить множество вызовов callback_output()
, callback_inputs()
и callback_update(value)
? Есть ли способ написать декоратор и функцию только один раз и добавить туда вызовы к callback_...
функциям?