W ostatnią sobotę odbył się we Wrocławiu nocny półmaraton. Dostarczył on, oprócz dobrej zabawy, niemałego zbioru danych zawierającego międzyczasy blisko 7000 uczestników.

Moja propozycja na ciekawą wizualizację tych danych następująca. Dla każdych kolejnych punktów pomiarowych, i dla każdego biegacza osobno, liczę średnie tempo. To znaczy, że dla każdego startującego w półmaratonie znam jego tempo na pierwszych 5 km, pomiędzy 5-tym a 10-tym kilometrem i tak dalej. Na wykresie poniżej jedna linia odpowiada jednemu biegaczowi. Wartości w punktach to średnie tempo w jakim zawodnik przebiegł poprzedni fragment. Dodatkowo zaznaczyłem 5 i 95 kwantyl oraz medianę i mój wynik :)

polmaraton_full_tempo

Jeśli ktoś ma jakiś inny pomysł na wizualizację to zachęcam do dzielenia się!

Dane pobrałem ze strony półmaratonu, ich przystosowanie do R nie wymagało dużo pracy - chętnie się nimi podzielę jeśli ktoś jest chętny.

Na koniec kod w eRze. W data.frame dane znajdują się informacje o tempie dla wszystkich zawodników. Aby linie zawodników były widoczne są one mocno przeroczyste - alpha=0.02. W daneKwantyle są kwantyle i mój wynik.

p <- ggplot(dane,aes(x=dystans,y=tempo))
p <- p + geom_line(aes(group=osoba),colour="#431600",alpha=0.02)
p <- p + scale_y_continuous(labels=c(t(gsub(" ", ":", outer(3:11, c("00", "30"), paste)))),
                            breaks=seq(180, 690, 30))
p <- p + ylab("tempo (min/km)")
p <- p + geom_line(data=daneKwantyle, aes(group=osoba,colour=osoba),alpha=1)
p <- p + scale_color_discrete("", labels=c(paste("kwantyl", c(0.05, 0.5, 0.95)),"PS"))