Blog der Heimetli Software AG

Ridgeplot der Temperatur in Zürich

An der Stampfenbachstrasse in Zürich gibt es eine Messstation die Klimadaten erfasst. Diese Daten sind öffentlich verfügbar und können frei verwendet werden.

Aus diesen Daten habe ich einen Ridgeplot erzeugt und eingefärbt:

Ridgeplot mit den Temperaturen an der Stampfenbachstrasse

Das Script

Das Script ist in R geschrieben und liest die Daten direkt von der Webseite der Stadt Zürich.

# Load the required libraries
library( ggridges )
library( ggplot2 )
library( svglite )

# Read the data
df <- read.csv( "https://data.stadt-zuerich.ch/dataset/ugz_meteodaten_stundenmittelwerte/download/ugz_ogd_meteo_h1_2021.csv", colClasses=c("Date","character","character","character","character","numeric","character"), fileEncoding="UTF-8-BOM" )

# Select the necessary rows and columns
df <- df[df$Standort == "Zch_Stampfenbachstrasse" & df$Parameter == "T",c("Datum","Wert")]

# Add a column with the month number
df$Monat <- format(df$Datum,"%m")

# Plot to SVG file
svglite( filename="ridgeplot.svg" )

# Create the plot
p <- ggplot( df, aes(x=Wert,y=Monat,fill=..x..) ) +
             geom_density_ridges_gradient() +
             scale_fill_gradient(l ow="#0000FF", high="#E00000" ) +
             xlab( "ºC" ) +
             scale_y_discrete( limits=rev, labels=c("Dezember","November","Oktober","September","August","Juli","Juni","Mai","April","März","Februar","Januar") ) +
             theme_ridges() +
             theme( axis.title.y = element_blank(),
                    axis.title.x=element_text( hjust=0.47 ),
                    plot.title=element_text( hjust=0.35 ),
                    legend.position="none" ) +
             ggtitle( "Temperaturen Stampfenbachstrasse Zürich, 2021" )

plot( p )

dev.off()

Der Graph wird direkt in ein SVG-File geschrieben.

Dieses File kann zwar als Image in eine Webseite eingefügt werden, aber es bleibt statisch weil es die Höhe und Breite der Darstellung spezifiziert . Um die Darstellung responsiv zu machen habe ich diese beiden Angaben manuell aus dem File gelöscht. Das Verhältnis von Höhe und Breite bleibt dabei erhalten weil das File auch eine Viewbox enthält.