Überlappung von timestamps auf der X- Achse

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
okr_11845
User
Beiträge: 17
Registriert: Freitag 4. November 2022, 08:48

hallo zusammen,

ich wollte "mal eben" ein Diagramm in Python erstellen. Das ganze ist ein Temperaturverlauf von 23 Uhr bis 23Uhr am Folgetag

ich mochte auf der X-Achse also die Zeit + Datum dargestellt haben.

Insgesamt habe ich 99 Messpunkte. Jetzt möchte ich aber nur 5 oder so ähnlich auf der X-achse als xtick dargestellt haben. Leider klappt das nicht so ganz. Hier mein Code und paar meiner Ergebnisse:

plt.figure(stx)
sns.scatterplot(data=df_final,x='timestamp',y='tmp',hue='zone',linewidth=0,size=2)
plt.xticks(rotation=90)
plt.gca().set_ylim(bottom=10)
plt.gca().set_ylim(top=25)


type(df_final)
Out[2]: pandas.core.frame.DataFrame


df_final.iloc[0]
Out[7]:
zone 7.0
timestamp 2023-01-08T22:45:00.000Z
humidity 0.69
tmp 17.46
Name: 0, dtype: object

Bild


Vielleicht weiß ja jemand weiter
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich sehe da auch keinen Versuch, deine 5 Messpunkt explizit als xticks zu setzen. Das geht mit https://matplotlib.org/3.1.0/api/_as_ge ... ticks.html
okr_11845
User
Beiträge: 17
Registriert: Freitag 4. November 2022, 08:48

plt.figure(stx)
sns.scatterplot(data=df_final,x='timestamp',y='tmp',hue='zone',linewidth=0,size=2)
plt.xticks(rotation=45)
plt.gca().set_ylim(bottom=0)
plt.gca().set_ylim(top=25)
plt.xticks([0,52,99])

Hat ein Stück weit geholfen. Ich kann jetzt einzelne Werte ansprechen. In dem Fall den ersten, letzten und 52.

Aber so richtig ist es nicht das was ich wollte. Ich dachte ich kann sagen ich möchte n ticks und dann bekomme ich n ticks gleichmäßig über die x Achse verteilt
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe das gefunden. Vielleicht gibt es noch eine andere Möglichkeit, musst du eben suchen. Aber damit lässt sich dein Problem schon lösen, du musst halt die Reduktion auf n Einträge programmieren.
Antworten