[patch]Position der SVG x-Achsenbeschriftung in Abhängigkeit vom Zoom (Zeitpunkt

Begonnen von bema15, 06 Februar 2019, 14:59:37

Vorheriges Thema - Nächstes Thema

bema15

Bislang fand ich es irritierend, wenn z.B. bei einem Jahreszoom des SVG-Charts die Monatsbezeichnungen entlang der x-Achse immer mittig zu den vertikalen Gridlinien, also immer am Anfang des Zeitintervalls stehen. Bei einem Tageszoom mit den Uhrzeiten als Beschriftung ist dies OK so.

Deswegen habe ich folgende Änderung am Modul 98_SVG.pm programmiert:

Wenn an der x-Achse ein Zeitpunkt beschriftet werden soll, also eine Uhrzeit, dann erfolgt dies genau an diesem Punkt, also der vertikalen Gridlinie. So wie es bisher der Fall ist. Wenn allerdings an der x-Achse ein Zeitraum, also Tag, Monat oder Jahr, beschriftet werden soll, dann erfolgt dies mittig zu dem entsprechenden Intervall. Dann ist die Zuordnung einfacher und weniger irritierend.

Ich habe das Modul 98_SVG.pm dahingehend angepasst.

       
  • Bei Zoomfaktoren von kleinergleich einem Tag bleibt es so wie es war (mittig unter der Gridlinie).
  • Bei Zoomfaktoren von einer Woche oder größer werden die x-Achse Werte mittig zwischen den Intervallen angezeigt.
Als Beispiel ist anbei ein Screenshot von einem Chart im Jahreszoom.

Ich stelle diese Änderung gerne zur Verfügung. Anbei der Patch zu der 98_SVG.pm erstellt mit:
diff -u 98_SVG.pm_Original 98_SVG.pm > 98_SVG.pm.patch

Beim Programmieren dieser Änderung sind mir zwei Fehler aufgefallen, die ich gleich korrigiert habe:

       
  • Tics und Grid können bei einem Alignment über den rechten Rand laufen, beim Jahreszoom zu erkennen an "Jan" des Folgejahres.
  • Bei der 10- und 20-Jahre Skalierung wurden die vertikalen Gridlinien etwa in der Mitte des Jahres gezeichnet und nicht am Anfang des Jahres. Habe deswegen ein Alignment auf den Anfang des Jahres (align=3) in der Routine SVG_time_align($$) eingefügt.
Viele Grüße
Bema