library(tidyverse) library(animation) sonad=read_csv("http://www.tlu.ee/~jaagup/andmed/keel/kunglarahvas_lambipirn_pikkused_haalikud.txt") saveGIF({ print(sonad %>% filter(taishaalikuid==5) %>% ggplot(aes(sonapikkus)) + geom_histogram()) print(sonad %>% filter(taishaalikuid==6) %>% ggplot(aes(sonapikkus)) + geom_histogram()) }, movie.name="d:/r/sonapikkused.gif", interval=1) sonad %>% filter(taishaalikuid==5) %>% group_by(sonapikkus) %>% summarise(count=n()) saveGIF({ for(th in 1:7){ print(tibble(sonapikkus=1:15) %>% left_join(sonad %>% filter(taishaalikuid==th) %>% group_by(sonapikkus) %>% summarise(kogus=n())) %>% mutate(kogus=replace_na(kogus, 0)) %>% ggplot(aes(sonapikkus, kogus))+geom_col()+ylim(0, 50)+ggtitle(th)) } }, movie.name="d:/r/taishaalikud.gif", interval=1) #animatsioonil näidatakse, kuidas täishäälikute arvu muutumisel #muutub sõna sulghäälikute jaotus saveGIF({ for(th in 1:7){ print(tibble(sulghaalikuid=1:8) %>% left_join(sonad %>% filter(taishaalikuid==th) %>% group_by(sulghaalikuid) %>% summarise(kogus=n())) %>% mutate(kogus=replace_na(kogus, 0)) %>% ggplot(aes(sulghaalikuid, kogus))+geom_col()+ylim(0, 50)+ggtitle(th)) } }, movie.name="d:/r/taishaalikud2.gif", interval=1) saveGIF({ for(th in 1:7){ print(tibble(sulghaalikuid=1:8) %>% left_join(sonad %>% filter(taishaalikuid==th) %>% group_by(sulghaalikuid) %>% summarise(kogus=n())) %>% mutate(kogus=replace_na(kogus, 0)) %>% ggplot(aes(sulghaalikuid, kogus))+geom_col()+ylim(0, 50)+ggtitle(th)) } }, movie.name="d:/r/taishaalikud2.gif", interval=1) saveGIF({ for(sonu in 1:50){ print(tibble(sonapikkus=1:15) %>% left_join(sonad %>% head(sonu) %>% group_by(sonapikkus) %>% summarise(kogus=n())) %>% mutate(kogus=replace_na(kogus, 0)) %>% ggplot(aes(sonapikkus, kogus))+geom_col()+ylim(0, 50)+ggtitle(sonad[sonu, ]$sona)) } }, movie.name="d:/r/pikkuseareng.gif", interval=0.3) #Koostage animatsiooni XY-diagrammiga, kus jooksvalt näha, kuhu viimane sõna lisandub #X-teljel on täishäälikute arv ning Y-teljel on sulghäälikute arv #Viimane sõna on nähtav sõnana või teist värvi punktina saveGIF({ s=sonad %>% mutate(sulghaalikuid=jitter(sulghaalikuid)) for(sonu in 1:50){ print(s %>% head(sonu) %>% ggplot(aes(taishaalikuid, sulghaalikuid, label=sona))+ geom_text() + ylim(-1, 5) + xlim(0, 5)+ggtitle(sonad[sonu, ]$sona)) } }, movie.name="d:/r/pikkuseareng2.gif", interval=0.3)