Ich habe eine sehr ähnliche Frage an diese: Pandas graphing a timeseries, with vertical lines at selected dates, aber die Lösung funktioniert nicht mit Timedelta.Pandas, die eine Timedelta-Serie zeichnen, mit vertikalen Linien zur ausgewählten Zeit
Betrachten Sie diese Serie:
In:
avg_hr.head()
Out:
00:00:00 69.000000
00:00:01 93.750000
00:00:02 93.125000
00:00:03 92.900000
00:00:04 93.222222
00:00:05 93.222222
...
Name: bpm, Length: 253, dtype: float64
I-Element in dieser Reihe wie folgt wählen:
In:
avg_hr[pd.Timedelta(seconds=3)]
Out:
92.9
ich eine Grafik wie folgt erzeugen:
In:
avg_hr.plot()
Aber ich kann nicht vertikale Linien mit Timedelta wie dieses Grundstück:
In:
plt.axvline(x=pd.Timedelta(seconds=110), color='r', linestyle='dashed', linewidth=2)
Out:
TypeError: Cannot compare type 'Timedelta' with type 'float64'
Obwohl, wenn ich einen Schwimmer oder int verwenden, werden die vertikalen Linien an der Position 0.
In:
plt.axvline(x=110, color='r', linestyle='dashed', linewidth=2)
Wie kann ich vertikale Linien mit diesem Timedelta-Index plotten?
EDIT:
Auch wenn ich direkt mit den Tasten auf der x-Achse verwendet wird, ich die gleiche Fehlermeldung anzeigt:
In:
for key in avg_hr.keys():
ax.axvline(x=key, color='r', linestyle='dashed', linewidth=2)
Out:
TypeError: Cannot compare type 'Timedelta' with type 'float64'
Was 'avg_hr.index.dtype' kehrt tut? –
@ Vinícius Aguiar: Out: timedelta64 [ns] – probitaille