# Datensatz einlesen
< - read.table("http://www.produnis.de/R/Faktorfrequenz.txt", sep="\t", colClasses = "character", header=T)
dat # Berechnung
with(dat,table(JAHR,LAND))
Häufigkeiten von factor-levels für Gruppen plotten
Gegeben ist folgende Tabelle:
JAHR LAND
1999 UK
1999 UK
1999 UK
1999 UK
2000 UK
2000 UK
2001 UK
2001 UK
2001 UK
2001 UK
2003 UK
2003 UK
2003 UK
2003 UK
2004 UK
2005 UK
2005 UK
2005 UK
2005 UK
2006 UK
2006 UK
2008 UK
2008 UK
2008 UK
2008 UK
2008 UK
2009 UK
2001 GER
2002 GER
2003 GER
2003 GER
2004 GER
2004 GER
2005 GER
2005 GER
2006 GER
2006 GER
2006 GER
2007 GER
2008 GER
2009 GER
2010 GER
2011 GER
2011 GER
2011 GER
2006 UK
2011 GER
2012 GER
2012 GER
2012 GER
2005 USA
2007 USA
2007 USA
2009 USA
2010 USA
2010 USA
2011 USA
2012 USA
2012 USA
Jetzt möchte ich mit ggplot
eine Übersichtsgraphik erstellen. Hierbei soll die X-Achse die Jahreszahlen wiederspiegeln. Auf der Y-Achse sollen die Häufigkeiten der einzelnen Länder pro Jahr angezeigt werden.
Da die Länder-Variable ein factor ist, benötige ich einen ggplot-Code, welcher die Häufigkeiten der einzelnen factor-levels (Länder) gruppiert nach Jahren ausrechnet…
Das funktioniert hier “manuell” per
Aber wie “übersetze” ich das in einen ggplot
-Code? Da ggplot
selbst statistische Berechnungen durchführen kann, läge der Vorteil eines “reinen” ggplot
-Codes darin, dass neue factor-levels (in diesem Fall also ein neues LAND) direkt in der Grafik eingebunden wäre, ohne dass man den Code ändern müsste.
ggplot-Code
Und so funktioniert es:
# Datensatz einlesen
< - read.table("http://www.produnis.de/R/Faktorfrequenz.txt", sep="\t", colClasses = "character", header=T)
dat
# plotten
#------------
# Variante 1
ggplot(df, aes(x=factor(JAHR), fill=LAND)) +
geom_bar(position="dodge")
# Variante 2
ggplot(df, aes(JAHR)) +
geom_freqpoly(aes(y= ..count.., fill=LAND, group=LAND, colour=LAND),stat="bin",binwidth=1)
# Variante 3
ggplot(df, aes(JAHR)) +
geom_area(aes(y= ..count.., fill=LAND, group=LAND),stat="bin",binwidth=1)