vorneweg sei angemerkt, dass ich mit R auf Anfängerniveau arbeite. Trotzdem hoffe ich das Problem verständlich zu erläutern.
Der Quellcode:
Code: Alles auswählen
library("Cairo")
CairoSVG("Umfragen.svg",width=8.5,height=5.5)
daten3<-data.frame(zeit=c(25,1461),
"inst"=c("",""),
"ENDE"=c(50,50))
daten<-data.frame(zeit=c(25,35,37,43,45,49,50,58,59,64,66,70,71,72,72,73,76,78,78,99,105,109,111,120,128,130,135,141,150,159,160,165,169,175,183,189,194,199,201,209),
"inst"=c("","I","I","T","I","M","i","E","I","M","I","T","C","i","T","I","I","M","I","I","K","I","I","T","I","M","i","E","I","M","I","T","C","i","T","I","I","M","I","I"),
"PIS"=c(37.58,36,34.4,44,35,35,35,42,35,32,31.8,42,35,33,27,30,27.3,33,27.9,27.3,37.58,36,34.4,44,35,35,35,42,35,32,31.8,42,35,33,27,30,27.3,33,27.9,27.3),
"PO"=c(24.09,19,19.9,17,20,22,18,16,15,19,18,17,15,17,16,15,14.4,14,12.7,16.2,24.09,19,19.9,17,20,22,18,16,15,19,18,17,15,17,16,15,14.4,14,12.7,16.2),
"KUKIZ"=c(8.81,10,7.6,9,7,7,10,8,7,7,6.1,12,8,6,12,5,7.9,6,7.7,7,8.81,10,7.6,9,7,7,10,8,7,7,6.1,12,8,6,12,5,7.9,6,7.7,7),
"NOWO"=c(7.6,12,13.5,8,14,9,10,17,23,20,20,10,21,18,24,25,30.9,28,30.8,29.6,7.6,12,13.5,8,14,9,10,17,23,20,20,10,21,18,24,25,30.9,28,30.8,29.6),
"ZL"=c(7.55,6,8.9,5,8,7,4,4,5,6,7.9,4,3,6,6,7,5.3,4,6.1,5.4,7.55,6,8.9,5,8,7,4,4,5,6,7.9,4,3,6,6,7,5.3,4,6.1,5.4),
"PSL"=c(5.13,4,5,4,5,5,4,4,5,4,6.4,3,3,3,4,6,5.6,4,3.8,4.5,5.13,4,5,4,5,5,4,4,5,4,6.4,3,3,3,4,6,5.6,4,3.8,4.5),
"KORWIN"=c(4.79,4,3.8,3,4,5,6,4,5,4,3.7,2,3,6,NA,5,3.9,4,5,3.3,4.79,4,3.8,3,4,5,6,4,5,4,3.7,2,3,6,4,5,3.9,4,5,3.3),
"RAZEM"=c(3.62,5,4.2,1,3,4,3,3,2,2,1.3,1,3,2,4,NA,1.6,1,1.9,2.2,3.62,5,4.2,1,3,4,3,3,2,2,1.3,1,3,2,4,2,1.6,1,1.9,2.2))
blau<-"#073A76" #PIS
orange<-"#FCA241" #PO
schwarz<-"#000000" #KUKIZ
tuerkis<-"#005CA9" #NOWO
rot<-"#E2001A" #ZL
gruen<-"#1bb100" #PSL
dunkelblau<-"#E8B909" #KORWIN
violett<-"#660033" #RAZEM
cexwert=0.5
D<-dim(daten)[1]
plot(daten3$zeit,daten3$'ENDE',pch=as.character(daten3$inst), col="#000000",ylim=c(0,max(daten3$'ENDE')),
cex=cexwert, axes=FALSE,xlab="",ylab="")
for (i in 1:50)lines(c(0,3000),i*c(1,1),col="lightgrey",lwd=.3)
for (i in 1:10)lines(c(0,3000),i*c(5,5),col="lightgrey",lwd=.6)
lines(c(0,3000),rep(0,2),col="black",lty=1,lwd=2)
axis(2,at=c(0,5,10,20,30,40,50),labels=c("0%","5%","10%","20%","30%","40%","50%"), tick=FALSE, las=2)
verschieben=2
axis(1,at=seq(25,122,365.25/3),labels=paste(rep(c("Okt."),1),"\n",rep(2015:2015,each=1),sep=""),tick=FALSE)
axis(1,at=seq(153,2600,365.25/3),labels=paste(rep(c("Feb.","Jun.","Okt."),7),"\n",rep(2016:2019,each=3),sep=""),tick=FALSE)
points(daten$zeit,daten$PIS,pch=as.character(daten$inst),col=blau,cex=cexwert)
points(daten$zeit,daten$PO,pch=as.character(daten$inst),col=orange,cex=cexwert)
points(daten$zeit,daten$KUKIZ,pch=as.character(daten$inst),col=schwarz,cex=cexwert)
points(daten$zeit,daten$NOWO,pch=as.character(daten$inst),col=tuerkis,cex=cexwert)
points(daten$zeit,daten$ZL,pch=as.character(daten$inst),col=rot,cex=cexwert)
points(daten$zeit,daten$PSL,pch=as.character(daten$inst),col=gruen,cex=cexwert)
points(daten$zeit,daten$KORWIN,pch=as.character(daten$inst),col=dunkelblau,cex=cexwert)
points(daten$zeit,daten$RAZEM,pch=as.character(daten$inst),col=violett,cex=cexwert)
lines(c(0,3000),rep(5,2),col="darkgrey",lty=2,lwd=1.5)
title(main="Umfragen",font=2)
points(min(daten$zeit),daten$"PIS"[1],col="#073A76",pch=19,cex=1.25)
points(min(daten$zeit),daten$PO[1],col=orange,pch=19,cex=1.25)
points(min(daten$zeit),daten$KUKIZ[1],col=schwarz,pch=19,cex=1.25)
points(min(daten$zeit),daten$NOWO[1],col=tuerkis,pch=19,cex=1.25)
points(min(daten$zeit),daten$ZL[1],col=rot,pch=19,cex=0.75)
points(min(daten$zeit),daten$PSL[1],col=gruen,pch=19,cex=1.25)
points(min(daten$zeit),daten$KORWIN[1],col=dunkelblau,pch=19,cex=0.75)
points(min(daten$zeit),daten$RAZEM[1],col=violett,pch=19,cex=0.75)
daten<-daten[order(daten$zeit),]
movingaverage<-function(x,n) {
l<-length(x)-n+1
y<-x[1:l]
for (i in 1:l)
y[i]<-mean(x[(1:n)+i-1])
return(y) }
for (i in 3:10) {
daten[7:D,i]<-movingaverage(daten[,i],7)
}
daten<-daten[-(1:6),]
lines(daten$zeit[-D],daten$PIS[-D],pch=as.character(daten$inst),col="#073A76",lwd=2)
lines(daten$zeit[-D],daten$PO[-D],pch=as.character(daten$inst),col=orange,lwd=2)
lines(daten$zeit[-D],daten$KUKIZ[-D],pch=as.character(daten$inst),col=schwarz,lwd=2)
lines(daten$zeit[-D],daten$NOWO[-D],pch=as.character(daten$inst),col=tuerkis,lwd=2)
lines(daten$zeit[-D],daten$ZL[-D],pch=as.character(daten$inst),col=rot,lwd=2)
lines(daten$zeit[-D],daten$PSL[-D],pch=as.character(daten$inst),col=gruen,lwd=2)
lines(daten$zeit[-D],daten$KORWIN[-D],pch=as.character(daten$inst),col=dunkelblau,lwd=2)
lines(daten$zeit[-D],daten$RAZEM[-D],pch=as.character(daten$inst),col=violett,lwd=2)
dev.off()
Kurzum: Wie kann verhindert werden, dass die Mittelwertslinie nicht unterbricht?
Mit freundlichen Grüßen
Korab