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:
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.