3  Grafikerstellung

Mit der Methode pd.plot() können Series und DataFrame grafisch dargestellt werden. Dazu greift Pandas auf matplotlib zurück. Die Syntax von Pandas ist einfacher, dafür bietet das Modul weniger Möglichkeiten als matplotlib. Jedoch können Befehle aus Pandas und aus matplotlib zur Grafikerstellung kombiniert werden (siehe Werkzeugbaustein Matplotlib).

3.1 Series

Eine Series wird gegen den Index geplottet. Standardmäßig wird ein Liniendiagramm gezeichnet. Mit den Parametern xlabel und ylabel können Achsenbeschriftungen eingetragen werden.

meerschweinchen['len'].plot(xlabel = 'Index', ylabel = 'len')

Liniendiagramm des Indexes (0 bis 59) gegen die Länge zahnbildender Zellen von Meerschweinchen. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.

Mit dem Parameter kind kann der Grafiktyp geändert werden. Einige Möglichkeiten sind:

  • 'line': Standardwert Liniendiagramm
  • 'bar': vertikales Balkendiagramm
  • 'hbar': horizontales Balkendiagramm
  • 'hist': Histogramm
  • 'box': Boxplot
  • 'pie': Tortendiagramm

Einige sinnvolle Parameter sind:

  • colormap = palette ändert die Farbpalette. Eine Liste der in matplotlib verfügbaren Paletten finden Sie in der Dokumentation.
  • figsize = (Breite, Höhe) Tupel der Bildgröße in Zoll
  • legend = True zeichnet eine Legende ein.
  • title = 'Titel' trägt einen Titel ein.
  • grid = True fügt Gitternetzlinien ein.
  • xlim = (min, max) / ylim = (min, max) setzt den Wertebereich der x- bzw. y-Achse.
meerschweinchen['dose'].value_counts().plot(kind = 'pie', ylabel = 'Dosis', colormap = 'Blues', figsize = (6, 6), legend = True, title = 'Tortendiagramm der Dosis Vitamin C')

Tortendiagramm der Vitamin C Dosis im Datensatz meerschweinchen mit drei gleich großen Segmenten für die Dosen 0.5, 1.0 und 2.0. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.

3.2 DataFrame

Für DataFrames sind weitere Optionen verfügbar. Mittels der Parameter x und y können Spalten oder Zeilen ausgewählt werden, die auf den jeweiligen Achsen aufgetragen werden sollen. y kann dabei auch eine Liste mit mehreren Einträgen enthalten.

meerschweinchen.plot(x = 'ID', y = ['dose', 'len'])

Liniendiagramm der Vitamin C Dosis und der Länge der zahnbildenden Zellen gegen die auf der x-Achse aufgetragene ID im Datensatz meerschweinchen. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.

 

Für DataFrames ist das Streudiagramm als Diagrammtyp verfügbar.

meerschweinchen.plot(x = 'ID', y = 'len', kind = 'scatter')

Streudiagramm der Länge zahnbildender Zellen gegen die auf der x-Achse aufgetragene ID im Datensatz meerschweinchen. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.

3.3 subplots

Mit dem Argument subplots = True werden Teilgrafiken erstellt. Dabei wird automatisch das Argument sharex = True gesetzt, sodass beide Teilgrafiken eine gemeinsame x-Achse nutzen teilen. Dem Parameter title können Überschriften für jede Teilgrafik als Liste übergeben werden.

meerschweinchen.plot(x = 'ID', y = ['dose', 'len'], subplots = True, title = ['Vitamin C Dosis', 'Länge zahnbildender Zellen']);

Liniendiagramm der Vitamin C Dosis und der Länge der zahnbildenden Zellen in zwei Teilgrafiken gegen die auf der x-Achse aufgetragene ID im Datensatz meerschweinchen. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.

 

Ebenso ist das Argument sharey = True verfügbar. Das Argument sharex wird auf False gesetzt.

meerschweinchen.plot(x = 'ID', y = ['dose', 'len'], subplots = True, sharex = False, sharey = True, title = ['Vitamin C Dosis', 'Länge zahnbildender Zellen']);

Liniendiagramm der Vitamin C Dosis und der Länge der zahnbildenden Zellen in zwei Teilgrafiken mit gleich skalierter y-Achse gegen die auf der x-Achse aufgetragene ID im Datensatz meerschweinchen. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.

 

Um die überdeckte Beschriftung der x-Achse zu beheben, muss auf den Befehl plt.tight_layout() aus dem Modul matplotlib.pyplot zurückgegriffen werden.

import matplotlib.pyplot as plt

meerschweinchen.plot(x = 'ID', y = ['dose', 'len'], subplots = True, sharex = False, sharey = True, title = ['Vitamin C Dosis', 'Länge zahnbildender Zellen']);
plt.tight_layout()

Liniendiagramm der Vitamin C Dosis und der Länge der zahnbildenden Zellen in zwei Teilgrafiken gegen die auf der x-Achse aufgetragene ID im Datensatz meerschweinchen. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.

 

Auch um für jede Teilgrafik eine y-Achsenbeschriftung zu setzen, muss auf matplotlib zurückgegriffen werden.

mein_plot = meerschweinchen.plot(x = 'ID', y = ['dose', 'len'], subplots = True, sharex = False, sharey = True, title = ['Vitamin C Dosis', 'Länge zahnbildender Zellen']);

mein_plot[0].set_ylabel('Milligramm pro Tag')
mein_plot[1].set_ylabel('Micron')
plt.tight_layout()
plt.show()

Liniendiagramm der Vitamin C Dosis und der Länge der zahnbildenden Zellen in zwei Teilgrafiken gegen die auf der x-Achse aufgetragene ID im Datensatz meerschweinchen. Die Grafik zeigt die Code-Ausführung und hat keine inhaltliche Bedeutung.