Zum Github-Repository Kiel_Open_Data ist ein weiteres Projekt hinzugekommen. Diesmal geht es um die Darstellung der Sozialhilfeaufwendungen in Kiel. Dazu gibt es im Open-Data-Portal der Stadt Kiel einige Zahlen. In diesem Beispiel habe ich aber lediglich die Aufwendungen zur Grundsicherung im Zeitraum von 2010 bis 2021 als Liniendiagramm dargestellt. Um dies umsetzen zu können, müssen folgende Module installiert werden:
requests
,pandas
,numpy
undmatplotlib
Der Code sieht wie folgt aus:
#!/usr/bin/env python3
import io
import requests
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Set width and height
plt.rcParams["figure.figsize"] = (14.0, 8.0)
CSV_URL = "https://www.kiel.de/de/kiel_zukunft/statistik_kieler_zahlen/open_data/kiel_soziales_sozialhilfeaufwendungen.csv"
def main():
# Fetch data
csv_data = requests.get(CSV_URL).content
# Read data
df = pd.read_csv(io.StringIO(csv_data.decode("utf-8")), sep=";")
print(df.head(3))
# Create a subplot
_, ax = plt.subplots()
# Drop NA values
df_cleaned = df.dropna(how="all")
# Unsigned integer
df_years = df_cleaned["Jahr"].astype(np.uint16)
x = df_years.values
y = df_cleaned["Grundsicherung"].values
# Set title and x/y label
plt.title("Kiel - Sozialhilfeaufwendungen\n Grundsicherung (2010-2021)")
plt.ylabel("Grundsicherung", size="x-large")
plt.xlabel("Jahr", size="x-large")
# Repress scientific notation (y-axis)
plt.ticklabel_format(style="plain", axis="y")
# Plot data
plt.plot(y, "*-", markersize=6, linewidth=1, color="b")
ax.set_xticks(range(len(x)))
ax.set_xticklabels(x, rotation="vertical")
plt.show()
if __name__ == "__main__":
main()
Da ich bereits in älteren Artikeln ausführlicher auf die Datenvisualisierung mit Matplotlib eingegangen bin, erspare ich mir an dieser Stelle weitere Ausführungen. Hinweisen möchte ich lediglich auf folgende Zeile:
plt.ticklabel_format(style="plain", axis="y")
Im Gegensatz zu den anderen in diesem Blog veröffentlichten Beispielen, habe ich sie hier hinzugefügt, damit hinsichtlich der Beschriftung der Y-Achse keine wissenschaftliche Notation verwendet wird.
Als Ergebnis erhält man folgendes Liniendiagramm:
Die entsprechende Jupyter-Notebook-Version findet Ihr auf Github.