In diesem Tutorial dreht sich alles um die Wahlen im Vereinigten Königreich vom 12. Dezember 2019. Zu welcher Sitzverteilung das Ergebnis dieser Wahl im House of Commons führte, soll mithilfe von Python visualisiert werden. Als Code-Editor nutze ich Visual Studio Code.
Es ist das dritte Balkendiagramm-Beispiel. Der Code zu den vorherigen Beispielen kann auf folgenden Seiten abgerufen werden:
Visual Studio Code und Jupyter Notebook
Visual Studio Code bietet mittlerweile eine sehr gute Unterstützung für Jupyter Notebook. Voraussetzung ist, dass das Paket jpyter
installiert wurde:
PS> pip install jupyter # Windows
$ pip3 install jupyter # Linux/macOS
Startet Visual Studio Code und öffnet mit shift
+ command
+ p
die Command Palette. Um mit einem neuen Notebook zu beginnen, muss hier
Python: Create New Blank Jupyter Notebook
ausgeführt werden.
Den Anfang machen die erforderlichen Importe:
import json
import matplotlib.pyplot as plt
from pprint import pprint
JSON-Datei lesen
Dann folgt der zu verwendende Datensatz, wobei die Daten aus einer JSON-Datei gelesen werden, die die Bezeichnung „uk_election_2019.json“ hat.
So sieht die Datei aus:
{
"Conservative Party": 365,
"Labour Party": 203,
"Scottish National Party": 48,
"Liberal Democrats": 11,
"Democratic Unionist Party": 8,
"Sinn Féin": 7,
"Plaid Cymru": 4,
"Green Party": 1,
"Brexit Party": 0,
"UK Independence Party": 0,
"Other Parties": 3
}
Und so sieht der Code aus:
FILE = "uk_election_2019.json"
with open(FILE) as json_file:
json_data = json.load(json_file)
Als Ergebnis erhält man ein Dictionary. Diese Daten könnte man sich jetzt anzeigen lassen, wobei hier pprint
zur Anwendung kommt:
pprint(json_data)
Sowohl die Schlüssel (Parteien) als auch die Werte (Sitze) werden nun jeweils zu einer Liste konvertiert:
parties = list(json_data.keys())
seats = list(json_data.values())
Die Balken sollen unterschiedliche Farben haben, die von der Liste „colors“ bereitgestellt werden:
colors = [
"#3D81CB",
"#B90E00",
"#F8E900",
"#E09000",
"#7E0700",
"#306A18",
"#528F2B",
"#55B728",
"#52BDD0",
"#BDBDBD",
"#767676",
]
Daten mit Matplotlib visualisieren
Zum Schluss kann dann mit Matplotlib das Balkendiagramm erstellt werden:
fig, ax = plt.subplots()
plt.title("UK General Election 2019")
plt.ylabel("Seats")
plt.xlabel("Parties")
plt.bar(parties, seats, align="center", alpha=0.6, color=colors)
ax.set_xticks(range(len(parties)))
ax.set_xticklabels(parties, rotation="vertical")
Für dieses Beispiel benötigt Ihr nicht zwangsläufig ein Jupyter Notebook. Ihr könnt diesen Code auch in einer Datei speichern und ausführen. Dann sollte aber nicht plt.show()
vergessen werden. Andernfalls wird keine Grafik angezeigt.
Zum Schluss nochmal der vollständige Code:
import json
import matplotlib.pyplot as plt
from pprint import pprint
FILE = "uk_election_2019.json"
with open(FILE) as json_file:
json_data = json.load(json_file)
pprint(json_data)
parties = list(json_data.keys())
seats = list(json_data.values())
colors = [
"#3D81CB",
"#B90E00",
"#F8E900",
"#E09000",
"#7E0700",
"#306A18",
"#528F2B",
"#55B728",
"#52BDD0",
"#BDBDBD",
"#767676",
]
fig, ax = plt.subplots()
plt.title("UK General Election 2019")
plt.ylabel("Seats")
plt.xlabel("Parties")
plt.bar(parties, seats, align="center", alpha=0.6, color=colors)
ax.set_xticks(range(len(parties)))
ax.set_xticklabels(parties, rotation="vertical")
plt.show()
Weiterführende Links
- Python, Pandas und Verkehrsunfälle in Kiel (Liniendiagramm)
- Güterumschlag im Kieler Hafen (Liniendiagramm)
- Übersicht zu Python-Tutorials
Zuletzt aktualisiert am 3. Februar 2024