ines-silc / APPR-2017-18

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

Preureditev podatkov v grafu #1

Closed ines-silc closed 6 years ago

ines-silc commented 6 years ago

zivljenjska doba

Problem pri preureditvi tretjega grafa v svojem projektu. Izvorna koda je: graf3 <- ggplot(tabela3, aes(x=leto, y=meritev, fill = Vrsta)) graf3 <- graf3 + geom_bar(stat="identity", position=position_dodge(), colour="black") RStudio avtomatsko razporedi kategorijo Vrsta v svoj vrstni red ("Moški", "Zdrava leta Moški", "Zdrava leta pri rojstvu Moški", "Zdrava leta pri rojstvu Ženske", "Zdrava leta Ženske", "Ženske"), želim pa, da bi bil vrstni red te kategorije enak kakor v tabeli (torej: "Ženske", "Moški", "Zdrava leta pri rojstvu Ženske", "Zdrava leta Ženske", "Zdrava leta pri rojstvu Moški", "Zdrava leta Moški"). Zanima me, ali je kakšna možnost, da se podatki preuredijo.

Za pomoč se že vnaprej zahvaljujem.

jaanos commented 6 years ago

Najprej naj opozorim na to, da naj se velikost črk v imenih datotek ujema z dejanskim imenom, saj so nekateri sistemi na to občutljivi - tako pri uvozu zadnje razpredelnice popravi ime datoteke na podatki/Naravni_viri.csv (z veliko začetnico).

Vrstni red kategorij lahko spremeniš s funkcijo reorder, ki poleg podatkov za preurejanje dobi še vektor iste dolžine, po katerem naj preureja. Navadno je ta že v podatkih (npr. če urejaš po velikosti nečesa) - v tem primeru ga ni, tako da bo treba narediti vektor z ureditvijo:

vrsta_urejeno <- c("Ženske" = 1,
                   "Moški" = 2,
                   "Zdrava leta pri rojstvu Ženske" = 3,
                   "Zdrava leta Ženske" = 4,
                   "Zdrava leta pri rojstvu Moški" = 5,
                   "Zdrava leta Moški" = 6)
graf3 <- ggplot(tabela3, aes(x=leto, y=meritev, fill = reorder(Vrsta, vrsta_urejeno[Vrsta]))) 

Naslov legende lahko potem spremeniš s parametrom name pri scale_fill_brewer (oziroma uporabljene lestvice).

Sicer pa imaš trenutno v stolpcu Vrsta dva podatka: spol in tip podatka (zdrava leta, skupna življenjska doba, ter procent zdravih let). Prva dva sta na isti skali (leta) in ju lahko ohraniš; zadnji je izpeljan in ga zato odstrani (vedno ga lahko izračunaš iz prvih dveh - seveda pa bo na drugačni skali). Stolpec Vrsta torej razbij na spol in tip - sedaj imaš dve dimenziji, ki ju lahko na prikažeš na grafu.

Svetujem tudi, da takih podatkov ne prikazuješ na stolpčnem grafu - bolj berljiv bo črtni graf, pri čemer lahko npr. spol prikažeš z barvo, tip podatka pa s tipom črte (linetype - npr. polna in črtkana črta). Če želiš prikazati delež zdravih let, ga lahko izračunaš in prikažeš na drugem grafu (spet bo boljši črtni graf).

Še to: grafov ne izrisuj v vizualizacija.r - to stori v poročilu z blokom kode na želenem mestu.