Wie bekomme ich dojox.charting -Etiketten für unregelmäßige (z. B. 31, 28, 31… SO on)?

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

  •  24-10-2019
  •  | 
  •  

Frage

Ich versuche, dojox zu verwenden, um ein einfaches Diagramm monatlicher Daten auszugeben.

Im Moment möchte ich, dass es jeden Monat einen Punkt pro Tag für eine Dauer von einem Jahr zeigt. Das arbeite ich.

Das Problem dabei ist: Ich kann keinen Weg finden, für jeden Monat Diagrammetiketten hinzuzufügen.

Ich möchte "Januar" um 0, "Februar" um 31 Uhr, "März" um 59 und so weiter.

Soweit ich das beurteilen kann, unterstützt dojox. 30, 60, 90 und so weiter.

Gibt es eine Möglichkeit, dies leicht zu tun oder ist das erforderliche DOJO -Code geändert?

Bitte beachten Sie dieses JSFIDDLE zum Beispiel: http://jsfiddle.net/svjrz/

War es hilfreich?

Lösung

dojox.charting unterstützt Timeries noch nicht.

Wenn ich unregelmäßige Daten (wie monatlich) präsentieren muss, interpoliere ich normalerweise tägliche Daten, um monatlich mit regulären Zecken (Jan, Februar usw.) als Linien-/Gebietskarte (Sie können dort Speisergerichte probieren) vorzustellen. Und ich wechsle zu wöchentlicher/täglicher Ansicht, wenn die Benutzer einbezieht.

Ja, es ist mehr Arbeit, aber das Ergebnis ist genau das, was ich will, dann "was ist verfügbar".

Andere Tipps

Ich habe eine mögliche Lösung zur Verfügung gestellt in diesem Beitrag.

Zeitbasiertes Diagramm erfordert, dass nicht zusammenhängende Daten gepolstert werden.

Sie müssen die vollständige Reihe von Datumswerten für die x -Achse in SQL oder PHP generieren. Ich verwende den MySQL -Trick einer Kalendertabelle mit einem Datumsfeld und einer Prozedur, um sie mit allen Daten in einem Bereich zu füllen. JavaScript kann ISO -Daten direkt konvertieren.

Ihre verstreuten Daten können dann als zusammenhängende zeitbasierte Serie mit folgenden Ausgaben ausgegeben werden:

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())
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top