Bokeh et fonction callback_menu

Fermé
hl - Modifié le 13 avril 2021 à 21:25
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 14 avril 2021 à 16:20
Bonjour,

Je fais une application
bokeh
en Python. J'aimerais afficher une figure et un menu déroulant. Je souhaite que la figure change entièrement lorsqu'on effectue notre choix. J'ai crée une fonction diagramme qui retourne une figure en fonction des paramètres qu'on lui passe.

C'est possible avec quelque chose du genre ?

menu = Dropdown(
    label ="Catégorie",
    menu=[('a','1'),('b','2'),('c','3'),('d','4'),('e','5')]
)
f = figure()

#Définition des callback functions
def callback_menu(new):
    if new == '1':
        f = diagramme(t1, t2)
    if new == '2':
        f = diagramme(t3, t4)
    elif new == '3':
        f = diagramme(t5, t6)
    elif new == '4':
        f = diagramme(t7, t8)
    else :
        f = diagramme(t9, t10)
   return f

menu.on_click(callback_menu)
#Construction du layout
layout = row(f, menu)


PS: Il y a trop de paramètres à modifier dans la construction de ma figure, c'est pourquoi j'aimerais faire de cette façon, sans avoir à changer les sources etc.

1 réponse

mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
14 avril 2021 à 13:56
Bonjour,

As-tu regardé cette discussion ?

Bonne chance
0
Bonjour,

Oui j'ai regardé, mais je ne vois pas comment ça peut m'aider, car c'est une nouvelle figure que je veux reconstruire et pas juste une donnée de la figure qu'il me faut modifier.
(ma fonction diagramme prend en paramètres différents tableaux que j'ai construit auparavant)

Merci en tout cas
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802 > hl
Modifié le 14 avril 2021 à 16:21
Bonjour

Ta callback est sensée mettre à jour le rendu. C'est ce qui se passe dans cet exemple (voir source). Si tu regardes ce qui se passe dans
main.py
, tu verras qu'interagir avec le dropdown menu qui permet de choisir le type de film permet de modifier la variable
selected
qui par la suite est exploité pour le rendu du diagramme (voir fonction
update
).

Si ça ne répond pas exactement à ta question, peut-être pourrais-tu partager un exemple de code minimal qui permet de reproduire ton cas de figure.

Bonne chance
0