ich probiere gerade etwas neues für mein Trading Skript. Ich möchte einen Teil der Kennzahlen grafisch anzeigen lassen, also habe ich mich mit matplotlib / pyplot beschäftigt und bekomme fast alles hin, was ich mir vorstelle, fast
Ich habe ne simple Grafik mit je 1 Linie für Calls und Puts, 3 farbig und 3 Horizontalen drin, die Grafik blockiert das eigentliche Skript nicht mehr und aktualisiert sich brav alle 2 Minuten, wenn neue Daten hinzugekommen sind.
Einziger Schönheitsfehler ist noch, daß die Daten momentan gleichmäßig über die ganze Breite verteilt werden, was es zu Beginn schwer leserlich macht. Die x-Achse soll von 15:30h bis 22:00 Uhr gehen und in 2 Minuten Schritten nach rechts gefüllt werden, so wie sich ein anfangs leeres Aktien Chart im Laufe eines Handelstages füllt.
Ich habe bisher nach verschiedenen englischen Begriffen in diesem Zusammenhang gesucht wie predefined x axis, range x axis, fill up... usw. aber finde keinen passenden Link zu ner Doku oder nen Beispiel. Es gibt schon Beispiele, in denen eine Grafik schrittweise gefüllt wird, aber da sind die Werte für die x-Achse im df schon komplett vorhanden, bei mir füllen die sich ja erst. Wenn ich diese Werte aus nem andere df nehmen, meckert Python, daß x-Achse und die bisher vorhandenen y-Werte nicht zusammen passen, verständlich. Wenn ich die nicht vorhandenen y-Werte mit z.B. 0 fülle, sieht es halt nicht schön aus
Kennt jemand die richtige Stelle in der Doku oder nen Beispiel Code? Die Funktion sieht bisher so aus:
Code: Alles auswählen
def plot_rkz(df_calls: DataFrame, df_puts: DataFrame):
""" RKZ plotten & updaten, wenn neue Daten vorhanden (aus func barupdate) """
df_calls_today = df_calls[df_calls['date'].dt.date == Timestamp.today().date()]
df_puts_today = df_puts[df_puts['date'].dt.date == Timestamp.today().date()]
if len(df_calls_today.index) == len(df_puts_today.index): # nur plot, wenn len dfs gleich
plt.rcParams["figure.figsize"] = (14,5)
plt.clf()
plt.ylabel("RKZ")
plt.margins(0)
plt.axhline(y=30, color='k', linestyle='--', alpha=0.4)
plt.axhline(y=50, color='k', linestyle='-', alpha=0.8)
plt.axhline(y=70, color='k', linestyle='--', alpha=0.4)
plt.axhspan(ymin=10, ymax=45, facecolor='red', alpha=0.2)
plt.axhspan(ymin=45, ymax=53, facecolor='yellow', alpha=0.2)
plt.axhspan(ymin=53, ymax=90, facecolor='green', alpha=0.2)
werte_x_achse = df_calls_today.index.strftime('%H:%M')
plt.plot(werte_x_achse, df_calls_today['RKZ'], color="green")
plt.plot(werte_x_achse, df_puts_today['RKZ'], color="red")
plt.ion()
plt.show()
plt.pause(120)