PyQt4.Qwt5 Achse mit Datum plotten

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Lykanthropie
User
Beiträge: 4
Registriert: Donnerstag 8. Dezember 2011, 16:33

Hallo zusammen,

ich bin gerade dabei ein Plugin (valuetool) für QGis umzuschreiben. Mit Qwt habe ich noch nie vorher gearbeitet.

Nun habe ich eine Liste mit Werten und eine Liste mit Daten (Typ datetime.date).
Auf der y-Achse werden die Werte dargestellt, was auch schon vorher funktioniert hat.
Ich möchte auf der x-Achse gerne komplette Daten z.B 2010-10-01 stehen haben (Datum, Wert).

Ich habe nun schon das Internet durchsucht nach Beispielen, wie ich das anstellen kann.
Bin immer wieder auf Klasse QwtScaleDraw und die Methode label() gestoßen, aber ein wirkliches Beispiel habe ich nicht gefunden.

Hat jemand von euch schon einmal so etwas gemacht und könnte mir bei meinem Problem helfen?

Der Abstand zwischen den einzelnen Daten ist eigentlich egal und muss nicht exakt sein, vielleicht gibt es dann eine einfachere Möglichkeit?

Vielen Dank und guten Rutsch ins neue Jahr,
Lykanthropie
Lykanthropie
User
Beiträge: 4
Registriert: Donnerstag 8. Dezember 2011, 16:33

Ich habe nun eine Lösung um das Datum auf der x-Achse darzustellen.
Jeder Tick auf der x-Achse ist ein Datum:

Ich habe nun eine Liste mit Tupeln [(datum, wert), (datum,wert),...].

Code: Alles auswählen

class TimeScaleDraw(QwtScaleDraw):
    def __init__(self, dates):
        QwtScaleDraw.__init__(self)
        self.dates = dates
        self.setLabelAlignment(Qt.AlignLeft | Qt.AlignBottom)
        self.setLabelRotation(270)

    def label(self, value):

        if value % 1 == 0 and int(value) < len(self.dates):
            return QwtText(str(self.dates[int(value)]))
        else:
            return QwtText('')
Jetzt suche ich allerdings nach einer Lösung um die Daten zeittreu darzustellen.
Die Abstände zwischen zwei Daten sollen je nach zeitlichen Abstand anders sein.

Jemand eine Ahnung, wie ich das umsetzten kann?
Antworten