Tortengrafik zeichnen mit Matplotlib

Im nächsten Teil unserer Matplotlib Serie zeichnen wir eine Tortengrafik am Beispiel der Fläche der Bundesländer von Österreich. Wir heben das größte Land optisch hervor und nehmen diverse Designänderungen vor. Sehen wir uns das fertige Bild zunächst an.

Tortengrafik Zeichnen Mit Matplotlib

Zu Beginn importieren wir zunächst wieder das Matplotlib Modul. Anschließend legen wir zwei Listen an. In der ersten Liste werden die Namen der neun Bundesländer von Österreich gespeichert. In der zweiten Liste sind die jeweiligen Werte für die  Landflächeeb in km² definiert. Um das größte Bundesland, Niederösterreich, hervorheben zu können, setzen wir in der Liste explode an der dritten Stelle einen Wert für den Abstand vom Rest der Grafik.

Für die Erstellung der Tortengrafik benötigen wir ein axes Objekt, auf das wir anschließend die pie() Funktion anwenden können (Link zur Funktionsbeschreibung). Dazu führen wir zuerst plt.subplots() aus und erhalten ein Tupel als Rückgabewert. Diese Tupel enthält unser benötigtes Objekt. Bei die Ausführung von pie() können zahlreiche Parameter übergeben werden. Wir benötigen in erster Linie unsere drei zuvor definierten Listen labels, sizes uns explode. Mit autopct formatieren wir die Prozentangaben in den Tortenstücken als Fließkommazahl mit einer Nachkommastelle. Mit pctdistance legen wir den Abstand der Prozentangaben vom Mittelpunkt des Kreises fest.

Um einzelne Elemente der Grafik nachträglich ändern zu können, benötigen wir die zurückgegebenen Listen patches, texts und autotexts. Als erstes färben wir den Namen des größten Bundeslandes rot. Anschließend stellen wir sicher, dass die Prozentangabe von Wien deutlich gelesen werden kann. Dazu erhöhen wir die x Position des Textes um 0.65. Dieser Wert wurde durch Ausprobieren ermittelt. Um einer bessere Kontrastwirkung zu erzielen, färben wir alle Prozentangaben weiß. Dabei lassen wir den Wert für Wien natürlich aus.

Damit unsere Grafik absolut Kreisförmig dargestellt wird, setzen wir das Attribut "equal" für die Funktion axis(). Zum Anzeigen des fertigen Bildes benötigen wir zum Schluss noch die Funktion plt.show().

Das Beispiel kann mit folgendem Befehl ausgeführt werden:

python3 matplotlib_torte.py

Das komplette Beispiel herunterladen: matplotlib_torte.zip

Über Anton Neururer 31 Artikel
Ich bin Programmierer und Blogger. Themen die mich besonders interessieren sind Python, C++ und Javascript. Des Weiteren befasse ich mich mit Fraktalen.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen