Build dynamic graphs that update to your users's Mito edits.
Motivation
A user is filtering a dataset using a Mito sheet.
You want to update a graph of this data elsewhere in your dashboard.
How to:
Simply use the @mito_callback to watch for changes on the spreadsheet_result prop, and then graph the resulting dataframe.
from dash import Dash, html, dcc, Output, Inputfrom dash.exceptions import PreventUpdateimport plotly.express as pximport pandas as pdfrom mitosheet.mito_dash.v1 import Spreadsheet, mito_callback, activate_mitodf = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.csv')app =Dash(__name__)activate_mito(app)app.layout = html.Div([Spreadsheet(df, id={'type': 'spreadsheet', 'id': 'sheet'}), dcc.Graph(id='graph-content'),])@mito_callback(Output('graph-content', 'figure'),Input({'type': 'spreadsheet', 'id': 'sheet'}, 'spreadsheet_result'))defupdate_code(spreadsheet_result):if spreadsheet_result isNone:raise PreventUpdate# Get the current value of the original dataframe dff = spreadsheet_result.dfs()[0]# Requires that the user doesn't delete the year, lifeExp, or continent columnreturn px.line(dff, x='year', y='lifeExp', color='continent')if__name__=='__main__': app.run(debug=True)
Now, if the user filters the original data in any way, the new data will be displayed on the page.