Dies ist eine Variation der Frage 'Wie zeige ich Datenbeschriftungen an?', die ich an einigen Stellen auf SO gesehen habe. Aber ich habe es noch nie auf einer Parasitenachse gemacht.
Im Grunde möchte ich Datenbeschriftungen über jedem Punkt der Zeitreihe (in grün) haben, die mit der (rechten) vertikalen Parasitenachse verbunden sind.
Das ist, was ich derzeit habe:
from mpl_toolkits.axes_grid1 import host_subplot
import matplotlib.pyplot as plt
Zeiten=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
plotreihenfolge=[239, 133, 94, 42, 31, 27, 49, 99, 172, 292, 397, 439, 450, 391, 429, 374, 382, None, None, None, None, None, None, None]
letztesjahrbestellungen=[119, 78, 49, 29, 14, 12, 30, 46, 108, 154, 194, 224, 181, 199, 213, 186, 167, 152, 135, 115, 99, 106, 97, 90]
unterschied=[100.8, 70.5, 91.8, 44.8, 121.4, 125.0, 63.3, 115.2, 59.3, 89.6, 104.6, 96.0, 148.6, 96.5, 101.4, 101.1, 128.7, None, None, None, None, None, None, None]
bestellungenMax=max(plotreihenfolge+letztesjahrbestellungen)
wachstumMax=max(unterschied)
host = host_subplot(111)
par = host.twinx()
host.set_xlabel("Stunde")
host.set_ylabel("Bestellungen")
par.set_ylabel("% Wachstum")
host.set_xlim(0,24)
host.set_ylim(0,bestellungenMax*1.1)
par.set_ylim(0,wachstumMax*2)
p1, = host.plot(Zeiten, plotreihenfolge, linewidth=2, marker='o', color='r', label="Heutige Bestellungen")
p1, = host.plot(Zeiten, letztesjahrbestellungen, linewidth=2, color='b', label="LY Bestellungen")
p2, = par.plot(Zeiten, unterschied, marker='s', color='green', label="% Wachstum")
leg = plt.legend()
plt.show()
Ich habe sowohl par.plot_text(Zeiten[1], unterschied[1], unterschied[1])
als auch par.annotate()
ausprobiert, aber beide warfen Fehler aus, die besagen AttributeError: 'AxesParasite' Objekt hat kein Attribut 'plot_text'
Das ist, was ich derzeit habe:
Ich möchte etwas Ähnliches wie dies (aus Excel):