lodex icon indicating copy to clipboard operation
lodex copied to clipboard

Problème d'affichage de certains graphiques

Open Alexmarmelab opened this issue 11 months ago • 17 comments

Définition du problème : Voici quelques exemples de graphiques ok dans la dernière V14 mais qui n'affichent plus rien dans la V15 notamment à cause des routines "pairing-with" et "graph-by". J'ai pu les "réparer" en utilisant la routine "cross-by" à la place.

Exemples : Exemple 1 : Synthaxe vega-lite Diagramme à barres empilées (réparable en utilisant "cross-by" au lieu de "pairing-with") V14 OK : https://instance-globale-14077.lodex-dev.inist.fr/instance/inst-dev-ref-func/graph/dzXO V15 NOK : https://lodex-dev.inist.fr/instance/inst-dev-ref-func/graph/dzXO

Exemple 2 : Treemap (réparable en utilisant "cross-by" au lieu de "graph-by") V14 OK : Car https://instance-globale-14077.lodex-dev.inist.fr/instance/inst-dev-ref-func/graph/acIW V15 NOK : https://lodex-dev.inist.fr/instance/inst-dev-ref-func/graph/acIW

Exemple 3 : Cartographie de flux (non réparable en utilisant "cross-by" au lieu de "pairingwith" Image Image V14 OK : https://instance-globale-14077.lodex-dev.inist.fr/instance/test-vbo-presta/graph/aVlS V15 NOK : https://instance-globale-1501.lodex-dev.inist.fr/instance/test-vbo-presta/graph/aVlS

Alexmarmelab avatar Jan 31 '25 08:01 Alexmarmelab

Autres exemples de graphiques qui ne s'affichent plus : les cartes de chaleur (routein : pairing-with) : V15 : https://instance-globale-1502.lodex-dev.inist.fr/instance/echantillon-cnrs-chu/graph/u3Tz V14 : https://instance-globale-14077.lodex-dev.inist.fr/instance/echantillon-cnrs-chu/graph/u3Tz

Image

nantonot avatar Jan 31 '25 08:01 nantonot

la routine pairing-with est une fonction map-reduce de mongodb, le code est ici https://github.com/Inist-CNRS/lodex/blob/master/packages/ezsLodex/src/reducers/pairing.js

touv avatar Jan 31 '25 08:01 touv

Idem pour Diagramme à bulle avec pairing-with (réparable avec cross-by) NOK https://instance-globale-1502.lodex-dev.inist.fr/instance/test-vbo-presta/graph/REPn OK https://instance-globale-14077.lodex-dev.inist.fr/instance/test-vbo-presta/graph/REPn

idem pour format Réseaux (réparable avec cross-by) NOK https://instance-globale-1502.lodex-dev.inist.fr/instance/test-vbo-presta/graph/qPJk OK https://instance-globale-14077.lodex-dev.inist.fr/instance/test-vbo-presta/graph/qPJk

Bonvallot avatar Feb 03 '25 09:02 Bonvallot

J'ajoute pour compléter qu'en plus de la cartographie de collaborations (exemple 3), les graphiques en réseaux et les cartes de chaleur ne sont pas réparables en remplaçant "pairing-with" ou "graph-by" (les routines renvoient des flux json vides) par "cross-by", le flux Json renvoyé est incomplet que ce soit en V14 ou en V15 :

Carte de chaleur OK en V14.0.67 avec pairing-with : https://instance-globale-14067.lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/LCrb

Carte de chaleur KO (données manquantes) en V15.0.2 (et V14.0.67) avec cross-by : https://lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/CzXq

Réseau OK en V14.0.67 avec pairing-with : https://instance-globale-14067.lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/DiaB

Réseau KO (données manquantes) en V15.0.2 (et V14.0.67) avec cross-by : https://lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/h8qV

De plus, la routine "decompose-by" ne semble renvoyer aucun flux :

Image

yannguillemin avatar Feb 03 '25 12:02 yannguillemin

De mon côté les Cartes de chaleur sont réparables avec cross-by https://instance-globale-1502.lodex-dev.inist.fr/instance/test-vbo-presta/graph/YhNq

@yannguillemin je ne vois pas de différence entre les graphes https://lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/LCrb et https://instance-globale-14067.lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/LCrb

Bonvallot avatar Feb 03 '25 14:02 Bonvallot

oui merci pour l'alerte @Bonvallot , j'avais "oublié" de travailler sur des copies de graphiques. J'ai réédité mon commentaire pour le corriger. Dans le cas de cette instance : "cross-by" "zappe" des données par rapport à "pairing-with".

Carte de chaleur OK en V14.0.67 avec pairing-with : https://instance-globale-14067.lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/LCrb

Carte de chaleur KO (données manquantes) en V15.0.2 (et V14.0.67) avec cross-by : https://lodex-dev.inist.fr/instance/export-bibtex-zotero-bibliometrics/graph/CzXq

yannguillemin avatar Feb 03 '25 15:02 yannguillemin

Le probléme semble venir d'ezs. Les données en sortie du mapReduce sont bonnes, mais disparaissent (les objest sont toujours là, mais deviennent vide) aprés être passée à feed.flow.

ThieryMichel avatar Feb 03 '25 15:02 ThieryMichel

Un extérieur pour qui j'avais fait une instance vient de me signaler qu'un tableau que j'avais créé en EJS ne fonctionne plus, il utilise la routine group-and-sum-with et est sous la v 14.0.77.

Image

en 15.0.2 Image

je ne pense pas pouvoir vous donnez accès à l'instance buggée, si j'essaie de switcher mon instance en passant de 15.0.2 à 14.0.77 je n'ai pas le bug... (j'ai bien vidé le cache)

AnaelKremer avatar Feb 04 '25 13:02 AnaelKremer

@AnaelKremer, mais est-ce que l'utilisateur extérieur a bien vidé son cache ? Car en vérifiant, group-and-sum-with fonctionne aussi bien 14.0.77 qu'en 15.0.2. Dans ton exemple, il semble que la somme est faite de 2019 à 2023 dans un cas et de 2018 à 2021 dans l'autre ? ou le bug concerne les cases grisés qui devraient être remplies ?

yannguillemin avatar Feb 04 '25 14:02 yannguillemin

La fonction mongodb finalize n'est plus exécutée, du coup la routine essaye de reformater des objets qui ne sont pas de le format attendu. cf. https://github.com/Inist-CNRS/lodex/pull/2476

touv avatar Feb 04 '25 15:02 touv

Sur cette instance: https://instance-globale-1503.lodex-dev.inist.fr/instance/test-vre-annota, la mise en plein écran du graphe à bulles "Thématiques" de la page d'accueil ne fonctionne pas. La taille du graphique ne change pas, alors que que cela fonctionne pour les deux autres graphiques ("Types de ressources" (diagramme circulaire) et "Domaines scientifiques" (diagramme en barres))

vresz avatar Feb 05 '25 11:02 vresz

@vresz : c'est normal car dans la configuration actuelle, la taille des graphiques à bulles est fixée par la taille des bulles qui est renseignée "en dur" dans les paramètres du graphique (en l'occurrence 300px) et ceci ne change pas que tu sois en plein écran ou pas. Une solution (hors scope) serait d'ajouter l'option "rapport d'aspect" qui s'appliquerait au graphique uniquement en mode plein écran tout en désactivant la taille des bulles spécifiée pour un affichage partiel.

yannguillemin avatar Feb 05 '25 11:02 yannguillemin

Tous les graphiques de l'instance de démo bibtex-zotero pour des graphiques simples ont pu être restaurés par la PR #2476 de @touv. Les graphiques de cette instance concernés par la réparation sont : carte de chaleur, cartographie des coopérations internationales, réseau des collaborations internationales, diagramme à bulles (pairing-with) et diagramme à barres groupées (graph-by). Ceci étant, même si dans le premier exemple ci-dessous, j'obtiens les mêmes données en sortie pour les 3 routines "cross-by", "graph-by" et "pairing-with", je n'arrive pas à produire les mêmes cartes de chaleur avec ces 3 routines dans le deuxième exemple.

Image

Image

À suivre...

yannguillemin avatar Feb 05 '25 12:02 yannguillemin

Pour compléter, voici 4 cartes de chaleur issues du même jeu de données (instance : https://lodex-dev.inist.fr/instance/zotero-bibtex-test-2). Selon la doc actuelle, la routine "decompose-by" se comporte comme la routine "graph-by" en créant les paires ID1/ID2, ID1/ID1 et ID2/ID2. Les routines "pairing-with" et "cross-by" se limitent à créer les paires ID1/ID2.

Voici ce que l'on obtient actuellement avec ces 4 routines : "decompose-by" ne semble renvoyer aucun flux, "graph-by" renvoie les paires ID1/ID2 et une partie des paires ID2/ID2, "pairing-with" est ok et donne le résultat attendu et "cross-by" ne renvoie qu'une partie des paires ID1/ID2.

  • decompose-by : KO Image

  • graph-by : KO Image

  • pairing-with : OK Image

  • cross-by : KO Image

yannguillemin avatar Feb 05 '25 16:02 yannguillemin

Tous les graphes qui posaient pb en 1502 sont ok en 1503 pour les exemples que j'avais listés.

Bonvallot avatar Feb 06 '25 12:02 Bonvallot

V 1503 : cartes de chaleurs OK ((routine : pairing-with)

nantonot avatar Feb 07 '25 08:02 nantonot

Vu au daily : Nicolas regarde le problème des routines

Alexmarmelab avatar Feb 10 '25 07:02 Alexmarmelab