J’ai un TC basique avec une date en colonne et un champ Integer en valeur.
J’ai regroupé l’axe date par mois, mais pour certains mois je n’ai pas de données.
Je souhaite que pour les mois sans données, la courbe soit “lissée” jusqu’au mois suivant au lieu de retomber à 0. Est-ce possible ?
Non je ne pense pas, et ça n’a pas trop de sens : le “count group by month” retourne à juste titre des 0 sur les mois vides. Si ce n’est pas linéaire faute de données, pourquoi afficher une courbe ? Autant afficher un “chart bar” si ce sont bien des valeurs discrètes.
Sinon il faut essayer de surcharger la méthode searchCrosstab pour retourner d’autres données, par exemple :
retirer les tuples vides mais je ne sais pas si chart.js sait afficher un chart line “partiel”
ou en créer avec des données extrapolées (ex: moyenne ou palier/valeur du mois précédent non vide), mais ça peut devenir confusant pour l’utilisateur qui va croire qu’il y a des données ce mois là
public List<String[]> searchCrosstab(Crosstab c)
Mais mon avis est de laisser les 0 en chart line ou bar.
Merci pour ton retour rapide, avec les bar c’est moins choquant mais j’ai quand même des trous :-/
Je vais dans ce cas regarder ce hook pour remplacer par la valeur précédente en cas de 0 dans la liste retournée.
Ok en appelant le super.searchCrosstab tu devrais récupérer les valeurs vides à corriger.
A valider que d’un point de vue métier ça a du sens de recopier la valeur du moins précédent non vide = palier de valeur tant que pas de nouvelle valeur connue.
Mais ça pourrait être une interpolation linéaire comme à l’école
Désolée j’ai encore une question, j’ai pu lisser la courbe mais je ne vois pas comment supprimer le total qui n’a pas de sens dans notre cas (évolution d’un pourcentage dans le temps basé sur la table historique)
Ou alors ce n’est pas les CT que je dois utiliser pour un graph aussi basique ?