Seite 1 von 1

x und y Achsen von Graph beschriften

Verfasst: Samstag 15. Juli 2023, 21:43
von Dvdscot
Ich möchte Wochentag unter beide Graphen schreiben und auf der y Achse soll "Anzahl der Fahrten" stehen, wird aber gar nicht angezeigt.
Sind zwei verschiedene ganz normale Datensätze.

Code: Alles auswählen

pickup_all = pd.crosstab(index=df.loc[:, 'pickup_weekday'], columns='count')
#print('All')
pickup_all.columns = ['Anzahl Alle']
#print(pickup_all)

ratio_all = pickup_all.loc[:,'Anzahl Alle'] / len(df)
ratio_all.index = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']
#print(ratio_all)

pickup_jfk = pd.crosstab(index=jfk_only.loc[:, 'pickup_weekday'], columns='count')
#print('JFK')
pickup_jfk.columns = ['Anzahl JFK']
#print(pickup_jfk)

ratio_jfk = pickup_jfk.loc[:,'Anzahl JFK'] / len(jfk_only)
ratio_jfk.index = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']
#print(ratio_jfk)

fig, ax = plt.subplots(figsize=(16,4), ncols=2)

ratio_all.plot(kind = 'bar', ax=ax[0], title = 'Anteile der Wochentage an den Gesamtfahrten');
ratio_jfk.plot(kind = 'bar', ax=ax[1], sharey = 'True', title = 'Anteile der Wochentage an den Flughafenfahrten');

ax[0].set_ylim(0, 0.21)
ax[0].xaxis.set_tick_params(labelrotation = 0)
ax[1].xaxis.set_tick_params(labelrotation = 0)

plt.xlabel('Wochentag', size = 16)
plt.ylabel('Anzahl der Fahrten', size = 10)
Bild

Re: x und y Achsen von Graph beschriften

Verfasst: Sonntag 16. Juli 2023, 08:24
von __blackjack__
@Dvdscot: `plt`-Funktionen beziehen sich in der Regel auf den letzten Plot. Darum steht das „Wochentag“ nur unter dem. Und die Y-Beschriftung wird nicht angezeigt, weil die beiden Plots sich die Achse teilen und die Beschriftung ganz links, also beim anderen Plot ist. Du musst die `ax`-Objekte einzeln beschriften, so wie Du das mit den Tick-Parametern ja auch schon getan hast.

Wobei ich das Wochentag nicht nur dort weglassen würde, sondern auch in den Titeln. Das es Wochentage sind, sollte an der Beschriftung der einzelnen Balken deutlich genug sein. Und „Anzahl der Fahrten“ ist Inhaltlich fragwürdig, weil das ja gebrochene Zahlen unter 1 sind. Da würde ja heissen das man da Sachen ablesen kann wie „Montag betrug die Anzahl der Fahrten 0,15“. Das macht keinen Sinn.

Das setzen der Y-Begrenzungen würde ich mir auch sparen. Oder zumindest in irgendeiner Weise von den tatsächlichen Daten abhängig machen.

Re: x und y Achsen von Graph beschriften

Verfasst: Sonntag 16. Juli 2023, 10:35
von Dvdscot
Danke, das hab ich mir schon gedacht, wie sieht die Lösung in Code aus?
ax[0].xlabel hat nicht funktioniert. Oder gleich schon beim erstellen des plots in der Klammer?

plt is matplotlib.pyplot.

Ich will der Vorlage möglichst nahe kommen, daher mache ich es so.

Re: x und y Achsen von Graph beschriften

Verfasst: Sonntag 16. Juli 2023, 10:56
von Sirius3
Man kann auch nur Methoden benutzen, die auch existieren:

Code: Alles auswählen

ax[0].xaxis.set_label_text

Re: x und y Achsen von Graph beschriften

Verfasst: Sonntag 16. Juli 2023, 16:10
von Dvdscot
Geht das mit Grids genauso? Also ax[0].grid...

Mit seaborn bekommt man sowieso ein Grid überall.