Regensummen weltweit

Regensummen weltweit

Um mal so ein Gefühl für die weltweiten Regensummen zu erhalten, auch gut für eine Auswanderung, kann man sich diese Grafik anschauen.

Die Werte kommen von der Seite weatherspark.com, die zusammengeführt habe. Auch dieses Thema kommt in einem kleinen Kapitel in einem baldigen Buch erwähnt. Hier schon einmal die Grafik, die aus Platzgründen nicht ins Buch schafft.

Um das zu stellen, braucht man natürlich Zeit und ein gutes Script, um das erzeugen zu lassen. Hier das Script für solches Diagramm.

import pandas as pd
import mariadb
import matplotlib.pyplot as plt
import seaborn as sns
from getpass import getpass

def niederschlaege():
    p = getpass("MariaDB Passwort: ")
    try:
        conn = mariadb.connect(
            user="sven",
            password=p,
            host="127.0.0.1",
            database="auswanderung"
        )
        
        # Wichtig: Spaltennamen in der Query klein oder groß, 
        # das muss im Plot-Befehl identisch sein!
        query = "SELECT stadt, Land, SUM(niederschlaege) AS Niederschlag FROM wetterinternational GROUP BY stadt ORDER BY Niederschlag DESC;"
        df = pd.read_sql(query, conn)
        conn.close()

        # Diese Zeilen stießen auf Fehler:
        # stadt = df['stadt']  <-- Nicht nötig, wenn man 'data=df' im barplot nutzt
        
        plt.figure(figsize=(14, 9))
        sns.set_style("whitegrid")

        # Palette definieren oder eine Standard-Palette von Seaborn nutzen
        barplot = sns.barplot(x='stadt', y='Niederschlag', data=df, palette="viridis")

        plt.title('Jährliche Niederschlagssummen weltweit', fontsize=16)
        plt.ylabel('Summe in mm (Liter pro m²)', fontsize=12)
        plt.xlabel('Stadt', fontsize=12)
        
        # Städte-Namen drehen, damit sie lesbar sind
        plt.xticks(rotation=45, ha='right')

        plt.tight_layout()
        plt.savefig('Regensummen_weltweit.png', dpi=300)
        plt.show()
        print("✅ Diagramm 'Regensummen_weltweit.png' wurde erstellt")
        
    except mariadb.Error as e:
        print(f"Fehler: {e}")

if __name__ == "__main__":
    niederschlaege()

Die Kommentare sind geschlossen.