Tutorial: Seaborn Heatmap mit RKI Corona Altersinzidenzen erzeugen

Heatmaps mit Seaborn sind eine gute Visualisierung, um zum Beispiel die Änderungen in den Corona-Inzidenzen im Wochenverlauf bei den einzelnen Altersgruppen darzustellen.


import matplotlib.pyplot as plt 
import matplotlib as mpl
import pandas as pd
import seaborn as sns
import numpy as np
import requests

Jetzt laden wir die Daten für die Heatmap. Das sind Corona- Altersinzidenzen für Hamburg vom RKI. Man kann sich mit der RKI-Software SurvStat diese CSV-Dateien selbst erzeugen. 

  • SurvStat öffnen
  • Beispielabfragen
  • COVID-19 (ganz unten)
  • Meldejahr/Woche in die Spalten und Altersjahre in die Zeilen
  • Am Ende gezippte CSV-Datei in den gleichen Ordner wie das Python Skript packen.

df = pd.read_csv('https://python-pandas.de/wp-content/uploads/2021/08/Data.csv', sep="\t", thousands=".", decimal=",", skiprows=1)

Und nun wird die Grafik gebaut und abgespeichert: 


fig, ax = plt.subplots(figsize=(11, 9)) # Plot-Größe bestimmen

# Grafik-Typ: Seabron Heatmap. Wir nehmen den DataFrame ohne die erste Spalte
sns.heatmap(df.iloc[:,2:], cmap="Reds", vmin= 0.0, linewidth=0.3, cbar_kws={"shrink": .9}) 

# Achsenlabel setzen:
ax.set(xlabel='Kalenderwoche 2020/2021', ylabel='Inzidenz in der Altersgruppe')        

# Titel bestimmen:
plt.title("HH: COVID-19 Inzidenzen nach Altersgruppen und Kalenderwochen") 

# Quelle mit Position 
plt.annotate('Quelle: RKI SurvStat', (0,0), (-10,-90), fontsize=12, 
             xycoords='axes fraction', textcoords='offset points', va='top')

# Datei speichern. Mit dem DPI-Wert kann man die Pixel-Größe der Datei beeinflussen
plt.savefig('hh_inzidenz_nach_altersjahren.png', dpi=72)

#Plot anzeigen
plt.show()

Heatmap mit Seaborn und Matplotlib / Python / Pandas