Comment obtenir des étiquettes dojox.charting sur des valeurs irrégulières (par exemple. 31, 28, 31 ... ainsi de suite)?

StackOverflow https://stackoverflow.com/questions/5318602

  •  24-10-2019
  •  | 
  •  

Question

Je suis en train d'utiliser dojox.charting pour produire un graphique simple des données mensuelles.

Pour l'instant, je le veux pour afficher un point par jour de chaque mois, pour une durée d'un an. Ce que j'ai travail.

Le problème est :. Je ne peux pas trouver un moyen d'ajouter des étiquettes de graphique pour chaque mois

Je veux "Janvier" à 0, "Février" au 31 "Mars" à 59 et ainsi de suite.

Pour autant que je peux dire, dojox.charting ne supporte que d'avoir des étiquettes sur des valeurs régulières, par exemple. 30, 60, 90 et ainsi de suite.

Y at-il une certaine façon, je peux facilement le faire, ou est en train de changer le code de dojo nécessaire?

S'il vous plaît voir cette jsFiddle par exemple: http://jsfiddle.net/svjrz/

Était-ce utile?

La solution

dojox.charting ne supporte pas timeseries encore.

Quand je dois présenter des données irrégulières (comme par mois), généralement j'interpoler des données quotidiennes à présent sur l'échelle mensuelle avec les tiques régulières (janvier, février, etc.) sous forme de graphique ligne / surface (vous pouvez essayer splines là-bas) . Et je passe à la semaine / Journalier lors utilisateur explorait.

Oui, il est plus de travail, mais le résultat est exactement ce que je veux, plutôt que « ce qui est disponible ».

Autres conseils

Je fourni une solution possible dans ce message .

cartographie basé sur un temps exige des données de remplissage non contiguës.

Vous aurez besoin de générer la série complète de valeurs de date pour l'axe X dans SQL ou PHP. J'utilise l'astuce de MySQL d'une table de calendrier avec un champ DATE et une procédure pour le remplir avec toutes les dates dans une gamme. JavaScript peut convertir les dates ISO directement.

Vos données éparses peuvent alors être sortie comme une série à base de temps contigus en utilisant:

SELECT DISTINCT(t0.datefield) AS Date, SUM(t1.sales) AS Sales FROM T_Sales AS t1 RIGHT JOIN T_Cal AS t0 ON t0.datefield = DATE(t1.saledate) WHERE t0.datefield >= DATE(NOW() - INTERVAL 6 MONTH) AND t0.datefield <= DATE(NOW())
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top