File talk:Btw-umfragen.svg

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Code für R

[edit]
library("Cairo")
CairoSVG("btw-umfragen.svg",width=8.5,height=5.5)
daten<-read.csv("btw-umfragen.csv",sep="\t")

rot<-"#ff0000"
gruen<-"#008b00"
gelb<-"#ffff00"
rotrot<-"#de2922"
orange<-"#ff820a"
blau<-"#ffff00"
hellblau<-"#00adef" 

daten$zeit<-NA
zeit<-0
for (jahr in 9:13)
for (monat in 1:12)
{
maxmonat=31
if (monat==4|monat==6|monat==9|monat==11)maxmonat=30
if (monat==2&jahr==12)maxmonat=29
if (monat==2&jahr!=12)maxmonat=28
for (tag in 1:maxmonat)
{
datum=""
if (monat<10)datum="0"
datum=paste(datum,monat,"/",sep="")
if (tag<10)datum=paste(datum,"0",sep="")
datum=paste(datum,tag,"/",sep="")
if (jahr<10)datum=paste(datum,"0",sep="")
datum=paste(datum,jahr,sep="")
zeit<-zeit+1
daten$zeit[daten$Datum==datum]<-zeit
}
}

daten<-daten[order(daten$zeit),] 

levels(daten$Institut)[levels(daten$Institut)=="FGW"]<-"W"
levels(daten$Institut)[levels(daten$Institut)=="INSA"]<-"S"

plot(daten$zeit,daten$Union,pch=as.character(daten$Institut), col="black",ylim=c(0,max(daten$Union)),
cex=.5, axes=FALSE,xlab="",ylab="")

for (i in 1:44)lines(c(0,3000),i*c(.01,.01),col="lightgrey",lwd=.3)
for (i in 1:8)lines(c(0,3000),i*c(.05,.05),col="lightgrey",lwd=.6)
lines(c(0,3000),rep(0,2),col="black",lty=1,lwd=2)

axis(2,at=c(0,0.05,.1,.2,.3,.4),labels=c("0%","5%","10%","20%","30%","40%"), tick=FALSE, las=2)

axis(1,at=seq(15,2900,365.25/3),labels=paste(rep(c("Jan.","Mai","Sep."),8),"\n",rep(2009:2014,each=3),sep=""),tick=FALSE)
points(daten$zeit,daten$SPD,pch=as.character(daten$Institut),col=rot,cex=0.5)
points(daten$zeit,daten$Gruene,pch=as.character(daten$Institut),col=gruen,cex=0.5)
points(daten$zeit,daten$Sonst,pch=as.character(daten$Institut),col=grey(.85),cex=0.5)
points(daten$zeit,daten$Linke,pch=as.character(daten$Institut),col=rotrot,cex=0.5)
points(daten$zeit,daten$FDP,pch=as.character(daten$Institut),col=gelb,cex=0.5)
points(daten$zeit,daten$Piraten,pch=as.character(daten$Institut),col=orange,cex=0.5)
points(daten$zeit,daten$FW,pch=as.character(daten$Institut),col=blau,cex=0.5)
points(daten$zeit,daten$AfD,pch=as.character(daten$Institut),col=hellblau,cex=0.5)

lines(c(0,3000),rep(0.05,2),col="darkgrey",lty=2,lwd=1.5)
title(main="Sonntagsfrage zur Bundestagswahl") 

points(min(daten$zeit),daten$Union[1],col="black",pch=19,cex=1.25)
points(min(daten$zeit),daten$SPD[1],col=rot,pch=19,cex=1.25)
points(min(daten$zeit),daten$Gruene[1],col=gruen,pch=19,cex=1.25)
points(min(daten$zeit),daten$Linke[1],col=rotrot,pch=19,cex=1.25)
points(min(daten$zeit),daten$FDP[1],col=gelb,pch=19,cex=1.25)
points(min(daten$zeit),daten$Piraten[1],col=orange,pch=19,cex=1.25)

dev.off()