Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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

loicbcn a écrit:

...

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

loicbcn a écrit:

...
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

JD a écrit:

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à wink.

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 wink )
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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

 

Pied de page des forums

Powered by FluxBB