Ich muss Handelsdaten alle 5 Minuten (eine Kerze) plotten
Hier ist was ich bisher habe:
%Vor%Und es sieht so aus:
Ich muss es verbessern:
Die blaue Markierung zeigt an, dass xticks
mit int
angezeigt wird. Ich möchte, dass sie in datetime
format sind.
Die rote Markierung zeigt den x-Wert in der Statusleiste an. Ich möchte das auch in datetime
format haben.
Hier sind die quotes
-Demodaten:
Hier ist ein Code, der funktioniert.
Zuerst konvertieren wir den Zeitstempel in ein Datetime-Objekt mit datetime.datetime.fromtimestamp
.
Dann setzen wir die Tick-Orte mit einem ticker.MaxNLocator
.
Ich habe dann eine Funktion erstellt, um an ticker.FuncFormatter
zu füttern, um das datetime
-Objekt als Hilfsstrichsbeschriftung zu verwenden, und den Integer-Wert des Ticks zu verwenden, um die zuvor erstellte xdate
-Liste zu indexieren.
Die try... except
-Klausel ist dort vorhanden, falls es in Ihrem quotes
-Array ein Häkchen hinter dem letzten Zeitstempel gibt. In diesem Fall würde die Funktion fehlschlagen.
Ich habe auch autofmt_xdate()
hinzugefügt, um die Ticks zu drehen, und tight_layout()
, um Platz für sie zu schaffen
Sie sollten den Datumsstempel in Ihrem Array zuerst in datetime-Objekt konvertieren und dann mit date2num
konvertieren.
Wie in Ссылка
angegebenmatplotlib.finance.candlestick_ochl (ax, Anführungszeichen , width = 0.2, colorup = 'k', colordown = 'r', alpha = 1.0)
Anführungszeichen : Sequenz von (Zeit, Öffnen, Schließen, Hoch, Niedrig, ...) Sequenzen
Solange die ersten 5 Elemente diese Werte sind, kann der Datensatz so lang sein, wie Sie möchten (z. B. kann er Volumen speichern).
time muss im Format float days sein - siehe date2num
%Vor%Tags und Links python matplotlib numpy