Open StanicR17 opened 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()
V mislih sem imel temu podoben graf,kjer se sproti seštevajo novi testi/okuženi.
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()
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")
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.
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),