StanicR17 / APPR-2019-20

Repozitorij z gradivi za predmet Analiza podatkov s programom R v študijskem letu 2019/20
MIT License
0 stars 0 forks source link

Vizualizacija vsote #3

Open StanicR17 opened 4 years ago

StanicR17 commented 4 years ago

Zanima me, kako bi lahko direktno iz podatkov o dnevno okuženih/testiranih narisal graf o skupnem številu. (lahko napišem funkcijo, ki ustvari nov stolpec v dataframe-u, vendar verjetno obstaja bolj direkten način),

jaanos commented 4 years ago

Nisem čisto prepričan, kaj točno želiš seštevati. Tukaj je primer, ki izriše graf skupnega števila okužb glede na spol:

ggplot(potrjeni.primeri.dnevno %>% group_by(spol) %>%
         summarise(stevilo=sum(dnevno.stevilo)),
       aes(x=spol, y=stevilo)) + geom_col()
StanicR17 commented 4 years ago

primer V mislih sem imel temu podoben graf,kjer se sproti seštevajo novi testi/okuženi.

jaanos commented 4 years ago

Aha, zanimajo te torej kumulativne vsote - v ta namen lahko uporabiš funkcijo cumsum. Izris grafa rasti potrjenih primerov bi torej šel tako:

ggplot(potrjeni.primeri.dnevno %>% group_by(datum.prijave) %>%
         summarise(stevilo=sum(dnevno.stevilo)) %>%
         arrange(datum.prijave) %>%
         mutate(skupno.stevilo=cumsum(stevilo)),
       aes(x=datum.prijave, y=skupno.stevilo)) +
  geom_line()
StanicR17 commented 4 years ago

Hvala, zanima me še, kako bi lahko skupna testiranja in okužene dal na isti graf, točneje me zanima, kako bi lahko združil sledeča grafa: stevilo_okuzenih <- ggplot(potrjeni.primeri.dnevno %>% group_by(datum) %>% summarise(stevilo=sum(dnevno.stevilo)) %>% arrange(datum) %>% mutate(skupno.stevilo=cumsum(stevilo)), aes(x=datum, y=skupno.stevilo)) + geom_line(col="green")+ ggtitle("Število okuženih")

stevilo_testiranj <- ggplot(podatki %>% group_by(datum) %>% summarise(stevilo=sum(rutinsko.dnevno)) %>% arrange(datum) %>% mutate(skupno.stevilo=cumsum(stevilo)), aes(x=datum, y=skupno.stevilo)) + geom_col()+ ggtitle("Število testiranj")

jaanos commented 4 years ago

Tako prikazovanje podatkov z različnimi lestvicami na istem grafu se odsvetuje, saj lahko zavaja. Kar lahko narediš, je to, da prikažeš dva grafa z isto osjo x enega nad drugim, npr.

ggplot() + aes(x=datum.prijave, y=skupno.stevilo) +
  geom_line(data=(potrjeni.primeri.dnevno %>% group_by(datum.prijave) %>%
              summarise(stevilo=sum(dnevno.stevilo)) %>%
              arrange(datum.prijave) %>%
              mutate(skupno.stevilo=cumsum(stevilo),
                     tip="Število okuženih")),
            col="green") +
  geom_col(data=(podatki %>% group_by(datum.prijave) %>%
             summarise(stevilo=sum(rutinsko.dnevno)) %>%
             arrange(datum.prijave) %>%
             mutate(skupno.stevilo=cumsum(stevilo),
                    tip="Število testiranj"))) +
  facet_grid(rows=vars(tip), scales="free_y") +
  scale_y_continuous(labels=comma_format(big.mark=""))

Mimogrede, svetujem, da sprejmeš #1, kjer so popravljene povezave za Binder.