Pages: 1
- Sujet précédent - QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML - Sujet suivant
#1 Tue 17 May 2022 09:43
- 20-100-LV
- Participant occasionnel
- Date d'inscription: 2 Mar 2022
- Messages: 26
QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
Bonjour,
Je réalise actuellement un atlas qui comprend, en plus de la carte, des graphiques.
Je me suis naturellement tourné vers l'extension Plotly qui fait cela très bien. Ainsi, j'ai des graphiques qui se mettent à jour quand je passe d'une page de l'atlas à une autre.
Cependant, la diversité des graphiques de cette extension est limitée et les paramétrages aussi ; je me suis donc tourné vers les cadres HTML qui permettent de créer des graphiques plus élaborés (donnuts, jauges...).
Or, je n'arrive pas à reproduire la mise à jour de ces graphiques "html" quand je change d'une page à l'autre de l'atlas, comme j'ai avec les graphiques "Plotly".
J'ai récupéré le code html créé par l'extension "plotly" (cf. pièce jointe) mais je n'arrive pas à voir à quel endroit du code se trouve la partie dynamique (qui gère la mise à jour du graphique quand on change de page).
Certains d'entre vous ont ils déjà été confrontés à cette problématique ?
Avez vous des pistes de recherche à me suggérer ?
Merci
Hors ligne
#2 Tue 17 May 2022 10:23
- loicbcn
- Participant occasionnel
- Date d'inscription: 22 Jan 2018
- Messages: 26
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
Bonjour,
Je rencontre le même problème que toi, avec la librairie javascript highcharts. C'est à dire un cadre HTML qui contient du javascript générant un graphique.
Au changement de page de l'atlas, le graphique ne se met à jour que si il est survolé par la souris, ou cliqué, ce qui empêche l'export ou l'impression de tout l'atlas.
Je ne suis pas sûr que le rafraîchissement effectué par l'extension plotly soit fait en javascript, mais plutôt via Python par le plugin, mais ce n'est qu'une supposition. Donc, si quelqu'un a une solution, je suis aussi preneur.
Hors ligne
#3 Tue 17 May 2022 10:33
- 20-100-LV
- Participant occasionnel
- Date d'inscription: 2 Mar 2022
- Messages: 26
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
...
Au changement de page de l'atlas, le graphique ne se met à jour que si il est survolé par la souris, ou cliqué, ce qui empêche l'export ou l'impression de tout l'atlas.
...
As-tu regardé du côté des évènements spéciaux ?
https://plotly.com/javascript/plotlyjs-events/
ça ressemble à click_event ou hover_event
Hors ligne
#4 Tue 17 May 2022 11:07
- loicbcn
- Participant occasionnel
- Date d'inscription: 22 Jan 2018
- Messages: 26
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
Merci pour ta réponse,pour ma part, je n'utilise pas plotly, mais highcharts.
Le soucis évoqué est:
lorsqu'on génère un graphique dans un cadre html du composer de qgis, celui-ci fonctionne dans une mise en page classique.
Mais il ne fonctionne pas correctement lorsqu'on génère un atlas, puisque le graphique en question ne se rafraîchit pas pour les différentes pages de l'atlas.
L'extension dataPlotly fonctionne avec les atlas, mais offre peu de graphiques (d’où l'idée de faire autrement).
La question est: comment fait dataplotly pour rafraîchir correctement les graphiques.
Dernière modification par loicbcn (Tue 17 May 2022 11:08)
Hors ligne
#5 Wed 18 May 2022 08:07
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
Bonjour,
Pour la faire courte cela fonctionnait très bien avant, sur la version 2 de qgis mais depuis la version 3 cela ne marche plus. C'est un problème qui vient vraisemblablement de qt5.
L'export est effectué avant même que le rendu HTML soit terminé.
J'avais été confronté à ce problème il y a 3/4 ans mais n'avait pas pas réussi à trouver de solution même par le biais de python.
Essayez de suivre la solution proposée et revenir vers nous pour nous dire si ça a fonctionné.
L'idée est de créer une fonction monothread qui attend un certain nombre de seconde et de la mettre dans votre composteur
https://gis.stackexchange.com/questions … n-template
Hors ligne
#6 Wed 18 May 2022 08:47
- 20-100-LV
- Participant occasionnel
- Date d'inscription: 2 Mar 2022
- Messages: 26
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
...
lorsqu'on génère un graphique dans un cadre html du composer de qgis, celui-ci fonctionne dans une mise en page classique.
Mais il ne fonctionne pas correctement lorsqu'on génère un atlas, puisque le graphique en question ne se rafraîchit pas pour les différentes pages de l'atlas.
L'extension dataPlotly fonctionne avec les atlas, mais offre peu de graphiques (d’où l'idée de faire autrement).
La question est: comment fait dataplotly pour rafraîchir correctement les graphiques.
Pour ma part, j'ai réussi à avoir des cadres html générant des graphiques élaborés qui se mettent à jour dans le cadre d'un atlas mais uniquement si la donnée est stockée en dur dans une couche qui comprend toutes les données nécessaires à l'élaboration de tous les graphiques.
Il suffit d'appeler les différentes colonnes dans la partie "value" du script.
Hors ligne
#7 Wed 18 May 2022 08:54
- 20-100-LV
- Participant occasionnel
- Date d'inscription: 2 Mar 2022
- Messages: 26
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
Bonjour,
Pour la faire courte cela fonctionnait très bien avant, sur la version 2 de qgis mais depuis la version 3 cela ne marche plus. C'est un problème qui vient vraisemblablement de qt5.
L'export est effectué avant même que le rendu HTML soit terminé.
J'avais été confronté à ce problème il y a 3/4 ans mais n'avait pas pas réussi à trouver de solution même par le biais de python.
Essayez de suivre la solution proposée et revenir vers nous pour nous dire si ça a fonctionné.
L'idée est de créer une fonction monothread qui attend un certain nombre de seconde et de la mettre dans votre composteur
https://gis.stackexchange.com/questions … n-template
Merci pour ce retour, je vais regarder ça mais de prime abord cela semble plutôt résoudre le problème d'impression en PDF d'atlas complexes et lourds... je n'en suis pas encore là .
Hors ligne
#8 Tue 24 May 2022 09:22
- 20-100-LV
- Participant occasionnel
- Date d'inscription: 2 Mar 2022
- Messages: 26
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
Un petit retour sur le sujet suite à des tests :
Il est possible d'utiliser des expressions Qgis dans la partie javascript des cadres HTML afin de générer des graphiques qui se mettent à jour à la volée sans passer par des données stockées en dur.
J'ai utilisé la fonction aggregate avec un filtre renvoyant sur la géométrie de l'atlas et une condition supplémentaire sur une colonne.
L'exemple ci-dessous calcule la longueur par catégorie :
Code:
values: [ [%round(aggregate('NomTable', 'sum', length($geometry), filter:=(within($geometry,@atlas_geometry)AND "NomColonne"=330)),2)%], [%round(aggregate('NomTable', 'sum', length($geometry), filter:=(within($geometry,@atlas_geometry)AND "NomColonne"=350)),2)%], [%round(aggregate('NomTable', 'sum', length($geometry), filter:=(within($geometry,@atlas_geometry)AND "NomColonne"=360)),2)%], [%round(aggregate('NomTable', 'sum', length($geometry), filter:=(within($geometry,@atlas_geometry)AND "NomColonne"=349)),2)%], ],
Après, il suffit de modifier le code en fonction de l'agrégation souhaitée (count, mean...) et moduler les catégories le cas échéant.
Dernière modification par 20-100-LV (Tue 24 May 2022 09:24)
Hors ligne
#9 Tue 24 May 2022 10:29
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 994
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
Super : merci pour ce retour Vincent (si je déchiffre bien ton pseudo )
Dis, pour nous faire rêver, tu nous ferais une petite capture d'écran du résultat ?
(pour nous motiver encore plus à nous pencher sur cette fonctionnalité quand on aura le temps !)
Sylvain M.
Hors ligne
#10 Wed 21 September 2022 15:37
- 20-100-LV
- Participant occasionnel
- Date d'inscription: 2 Mar 2022
- Messages: 26
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
voici un exemple de rendu ...
Dernière modification par 20-100-LV (Wed 21 September 2022 15:38)
Hors ligne
#11 Thu 22 September 2022 10:22
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 994
Re: QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML
voici un exemple de rendu ...
Bravo !
Sylvain M.
Hors ligne
Pages: 1
- Sujet précédent - QGIS/Aide: Mise en page avec Graphique Plotly et cadre HTML - Sujet suivant