For the complete documentation index, see llms.txt. This page is also available as Markdown.

Graph New Data after Edits to Mito

Build dynamic graphs that update to your users's Mito edits.

Motivation

  1. A user is filtering a dataset using a Mito sheet.

  2. 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, Input
from dash.exceptions import PreventUpdate
import plotly.express as px
import pandas as pd

from mitosheet.mito_dash.v1 import Spreadsheet, mito_callback, activate_mito

df = 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')
)
def update_code(spreadsheet_result):
    if spreadsheet_result is None:
        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 column
    return 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.

Last updated

Was this helpful?