Advertisement
Butanium

Dash regex filter example

Aug 1st, 2023
1,386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.44 KB | Source Code | 0 0
  1. import dash
  2. import dash_core_components as dcc
  3. import dash_html_components as html
  4. from dash.dependencies import Input, Output
  5. import plotly.express as px
  6. import re
  7.  
  8. # Créer un dataframe avec des données aléatoires
  9. df = px.data.gapminder().query("year == 2007")
  10.  
  11. # Créer une application dash
  12. app = dash.Dash(__name__)
  13.  
  14. # Définir le layout de l'application
  15. app.layout = html.Div([
  16.     # Un titre
  17.     html.H1("Filtrer les légendes avec une expression regex"),
  18.     # Un graphique plotly
  19.     dcc.Graph(id="graph"),
  20.     # Une text box pour entrer le regex
  21.     html.Div([
  22.         html.Label("Entrez une expression regex:"),
  23.         dcc.Input(id="regex-input", type="text", value=".*")
  24.     ])
  25. ])
  26.  
  27. # Définir une fonction qui met à jour le graphique en fonction du regex
  28. @app.callback(
  29.     Output("graph", "figure"),
  30.     Input("regex-input", "value")
  31. )
  32. def update_graph(regex):
  33.     # Créer un masque booléen pour filtrer les lignes du dataframe qui correspondent au regex
  34.     mask = df["country"].apply(lambda x: bool(re.match(regex, x)))
  35.     # Créer un sous-dataframe avec les lignes filtrées
  36.     filtered_df = df[mask]
  37.     # Créer un graphique plotly avec le sous-dataframe
  38.     fig = px.scatter(filtered_df, x="gdpPercap", y="lifeExp", size="pop", color="continent", hover_name="country", log_x=True, size_max=60)
  39.     # Retourner le graphique
  40.     return fig
  41.  
  42. # Lancer l'application
  43. app.run(debug=True, renderer='browser')
  44.  
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement