pkp <- read.table("pkp.csv", sep=";", header=T) odleglosci <- c(0, 0.67, 0.2392857, 0.4607143, 0.6, 0.8214286, 1.0000000) miasta <- c("Warszawa", "Poznan", "Lodz", "Czestochowa", "Katowice", "Opole", "Wroclaw") # usuwamy informacje o przystankach a wpoznaniu i Lodzi dla poprawi widocznosci pkp <- pkp[,c(-2,-3)] odleglosci <- c(0, 0.2392857, 0.4607143, 0.63, 0.8214286, 1.0000000) miasta <- c("Warszawa", "Lodz", "Czestochowa", "Katowice", "Opole", "Wroclaw") pkp <- pkp[,c(-2,-3)] odleglosci <- c(0, 0.4107143, 0.55, 0.8114286, 1.0000000) miasta <- c("Warszawa", "Czestochowa", "Katowice", "Opole", "Wroclaw") pkp <- pkp[apply(pkp=="", 1, sum)<7,] # # funkcja do rysowania siatki godzin # rysujSiatke <- function(miasta, dni = 1) { par(mar=c(3,7,3,7)) plot(c(dni*24), c(1, 0), col="white", xlab="",ylab="", xaxt="n", yaxt="n", bty="n", ylim=c(1,0), xaxs="i", yaxs="i") abline(h=odleglosci, col="grey") abline(v=seq(-24,48,0.25), lty=2, col="grey") axis(2,at=odleglosci, miasta, las=1) axis(4,at=odleglosci, miasta, las=1) axis(1,seq(0,max(dni)*24,1), seq(0,max(dni)*24,1) %% 24, cex.axis=0.75) axis(3,seq(0,max(dni)*24,1), seq(0,max(dni)*24,1) %% 24, cex.axis=0.75) } # # funkcja do rysowania przejazdow # rysujPrzejazd <- function(wiersz, kol="black", lwd=3) { wiersz <- sapply(wiersz, paste) tmp <- sapply(strsplit(wiersz, split=":"), function(x) as.numeric(x[1]) + as.numeric(x[2])/60) x <- odleglosci[floor( which(!is.na(tmp))/2) +1] lines(na.omit(tmp), x, type="o", pch=19,lwd=lwd, col=kol, lty=1, cex=0.6) lines(na.omit(tmp)+24, x, type="o", pch=19,lwd=lwd, col=kol, lty=1, cex=0.6) lines(na.omit(tmp)-24, x, type="o", pch=19,lwd=lwd, col=kol, lty=1, cex=0.6) } # # w dwoch rzedach narysujemy przejazdy w godiznach 0-12 i 12-24 # library(RColorBrewer) kolory <- paste(brewer.pal(7, "Dark2"), "ff", sep="") par(mfrow=c(2,1)) rysujSiatke(miasta,c(-0.05,0.55)) for (i in 1:nrow(pkp)) rysujPrzejazd(pkp[i,], kolory[i %% 7 + 1]) rysujSiatke(miasta,c(0.45,1.05)) for (i in 1:nrow(pkp)) rysujPrzejazd(pkp[i,], kolory[i %% 7 + 1])