pandas datetime, x-Achse, Stunden-Intervalle

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
jp21
User
Beiträge: 20
Registriert: Freitag 1. April 2022, 14:33

Hallo ihr Lieben,

ich habe ein DataFrame mit der Zeit im datetime forma in einer Spalte und Messdaten in einer weiteren Spalte.

Wie kann ich nun definieren, dass ich im Plot auf der x-Achse die Zeit undzwar nur die Stunden anzeige?

LG, jp21

Code: Alles auswählen

df["Zeit"] = pd.to_datetime(df["Zeit"], format="%d.%m.%Y %H:%M:%S:%f")

0      2022-04-07 08:55:05.587
1      2022-04-07 08:55:20.571
2      2022-04-07 08:55:35.571
3      2022-04-07 08:55:50.571
4      2022-04-07 08:56:05.571
                 ...          
5600   2022-04-08 08:15:05.571
5601   2022-04-08 08:15:20.571
5602   2022-04-08 08:15:35.571
5603   2022-04-08 08:15:50.571
5604   2022-04-08 08:16:05.571
Name: Zeit, Length: 5605, dtype: datetime64[ns]

Code: Alles auswählen

fig, axs = plt.subplots(12, sharex=True, figsize=(10*1.61,60))

#major_ticks=np.linspace(0,1000,36)
#axs[0].set_xticks(major_ticks)

#myFmt = mdates.DateFormatter('%H:00')
#axs.xaxis.set_major_locator(MaxNLocator(10)) 
#axs.xaxis.set_major_formatter(myFmt)

plt.minorticks_on()

start=240
stop=5605
step=1
for i in range(0,9):
    axs[i].plot(df["Zeit"][start:stop:step],1000*df[f"10{i+1} <S{i+2}> (VDC)"][start:stop:step])

axs[9].plot(df["Zeit"][start:stop:step],df["110 <VSS> (VDC)"][start:stop:step])    
axs[10].plot(df["Zeit"][start:stop:step],3.5*df["111 <T> (VDC)"][start:stop:step])
axs[11].plot(df["Zeit"][start:stop:step],10*df["112 <rF> (VDC)"][start:stop:step])

for i in range(0,12):
    axs[i].grid(visible=True, axis="both", which="both")   

plt.show()
EDIT:
Es handelt sich um ein subplots konstrukt und der auskommentierte Code funktioniert hier leider nicht!!
Antworten