Open melamalej opened 5 years ago
Par stvari:
Priporočam, da se izogibaš šumnikom v imenih spremenljivk, stolpcev in datotek (.csv-ji). Ti lahko namreč na nekaterih sistemih povzročajo napake. Šumniki v elementih tabel ter v raznih napisih, ki se pojavijo v poročilu (kot npr xlab
pri ggplot
) so ok.
.csv datoteke premakni v mapo podatki.
Da se izogneš eksponentni notaciji enot na grafih, predlagam da izraziš spremenljivke v tisočih/milijonih. Ob oseh nato še označi, za kakšno enoto gre.
Ko definiraš zemljevid
v klicu funkcije uvozi.zemljevid()
dodaj parameter encoding = "UTF-8"
Na zemljevidih se ne izrisujejo vse regije. To lahko spremeniš tako, da namesto inner_join
uporabiš left_join
. Regije, za katere ni podatkov, bodo izrisane v sivi barvi. Mimogrede še preveri, ali podatkov dejansko nimaš ali pride samo do neujemanja spremenljivk v join-u. Na skali v legendi ob zemljevidih se ti pojavi samo ena vrednost, kar ti ne pove dovolj o pomenu različnih barv. Morda še razmisli, če želiš uporabiti belo barvo za prikaz maksimalne vrednosti, saj se osrednjeslovenska regija skoraj zlije z ozadjem.
Spremenljivke z leti lahko pretvoriš v urejen faktor, da se izogneš decimalnemu zapisu na grafih (npr. 2012.5)
Poskrbi, da se napisi na grafih ter v legendah ne odrežejo (kot na sliki spodaj) zaradi pomanjkanja prostora.
Da se izogneš drsniku pri Shiny aplikaciji lahko povečaš parameter height
na npr. 800
Razen tega zgleda poročilo v redu. Ko boš zaključila, komentiraj pod tale issue, da dodamo projekt v repozitorij za predstavitve.
Popravila sem kar sem znala - decimalni zapis leta na grafu ne znam popraviti. Pojavita se mi dve težavi:
read_csv2
povedati, da se csv nahaja v novi mapi. Namesto npr. "st.podjetij_regije2008.csv"
kliči "podatki/st.podjetij_regije2008.csv"
https://github.com/melamalej/APPR-2018-19/blob/aefc117690e451b51ebccdf7cc1be6a941011f0d/uvoz/uvoz.r#L11-L12uvozi.zemljevid
mi je v tvojem projektu ponovno začela delat, ko sem jo nadomestil s posodobljeno različico, ki jo najdeš na spodnji povezavi
https://github.com/jaanos/APPR-2018-19/blob/master/lib/uvozi.zemljevid.r
Zamenjaj vse, kar se nahaja v libs/uvozi.zemljevid.r z zgornjo skripto.+
dodaš tale ggplot objekt k vsakemu grafu, kjer ne želiš decimalk v letih.
scale_x_continuous(breaks = seq(1900,2100,2))
Zdaj sem vse popravila razen točke :
inner_join
uporabiš left_join
. Regije, za katere ni podatkov, bodo izrisane v sivi barvi. Mimogrede še preveri, ali podatkov dejansko nimaš ali pride samo do neujemanja spremenljivk v join-u. Na skali v legendi ob zemljevidih se ti pojavi samo ena vrednost, kar ti ne pove dovolj o pomenu različnih barv. Morda še razmisli, če želiš uporabiti belo barvo za prikaz maksimalne vrednosti, saj se osrednjeslovenska regija skoraj zlije z ozadjem.Mislim da se nekaj ne ujema. Sem probala popraviti ampak mi ne uspe. Prosim za kakšen namig.
V primeru, da imaš težave z barvno skalo na legendi, je težava v logaritemski transformaciji. Imaš dva načina, kako se tega lotiti. Lažji je ta, da odstraniš del s scale_fill_gradientn
. Potem boš dobila tak klasičen modro obarvan zemljevid s sicer pravilnimi oznakami.
Po drugi strani morda je morda smiselno uvesti logaritemsko skalo, glede na to da osrednjeslovenska regija tako izstopa po vrednosti. Potem lahko prilagodiš tvoj originalen zemljevid nekako tako:
logmin=log(min(prihodek_2016$Skupni_prihodek),10)
logmax=log(max(prihodek_2016$Skupni_prihodek),10)
mybreaks=round(10^seq(logmin,logmax,(logmax-logmin)/4)/1000000,1)
zemljevid2 <- ggplot(left_join(zemljevid, prihodek_2016, by = c("NAME_1"='Regija'))) +
geom_polygon(aes(x = long, y = lat, group = group, fill = Skupni_prihodek/1000000)) +
scale_fill_gradientn(colours = terrain.colors(10), trans = "log10",breaks=mybreaks,limits=c(mybreaks[1]-0.2,mybreaks[5]+0.2))+
labs(fill="Skupni prihodek v mil. Eur")
zemljevid2
Tukaj posebej definiram zaporedje oznak, ki jih želim imeti na legendi. Najprej ustvarim zaporedje v logaritemski skali od minimuma do maksimuma podatkov, nato jih z inverzom spravim spet v prvotne enote. Tako dobljeno zaporedje nato podam kot parametra breaks
(vrednosti oznak) in limits
(min in max vrednost barvne skale). Mimogrede sem še pretvoril osnovno enoto v milijon evrov. Rezultat zgleda nekako tako:
Kar se tiče barv je pa stvar okusa, ampak precej možnosti se ti odpre z nastavljanjem low
in high
parametrov. Ob tem moraš spremeniti scale_fill_gradientn
v scale_fill_gradient
zemljevid2 <- ggplot(left_join(zemljevid, prihodek_2016, by = c("NAME_1"='Regija'))) +
geom_polygon(aes(x = long, y = lat, group = group, fill = Skupni_prihodek/1000000)) +
scale_fill_gradient(low="red",high="green", trans = "log10",breaks=mybreaks,limits=c(mybreaks[1]-0.2,mybreaks[5]+0.2))+
labs(fill="Skupni prihodek v mil. Eur")
zemljevid2
Opaziš lahko, da v mojem primeru ne izriše Notranjsko-kraške regije. Težava je v encodingu. Če pogledaš tole:
> prihodek_2016$Regija[!(prihodek_2016$Regija %in% zemljevid$NAME_1)]
[1] Notranjsko-kraška
13 Levels: Gorenjska Goriška Jugovzhodna Slovenija Koroška Notranjsko-kraška Notranjsko-kraška ... Zasavska
V tretji vrstici sta dva nivoja za Notrajnsko-kraško, ki zgledata identična. V obeh join objektih se prav tako nahaja Notrajsko-kraška, zato bi jih moralo združiti, vendar jih ne združi zaradi neujemanja v encodingu. Pri meni je delovalo, da sem v tej vrstici
Regije$Regija[Regije$Regija=="Primorsko-notranjska"] <- "Notranjsko-kraška"
kar uporabil vrednost, ki je že v tabeli zemljevid
.
Regije$Regija[Regije$Regija=="Primorsko-notranjska"] <- unique(grep("Notranj",zemljevid$NAME_1,value = T))
Tako mi izriše cel zemljevid. Je pa encoding ena stvar, ki pogosto na različnih sistemih povzroča različne težave. Dela mi lokalno in na Binderju, v primeru, da pa kaj ne bo delovalo, priloži sliko pa bomo pogledali.
Sedaj pa mislm, da sem kočnala. Glede zemljevida mi je že takoj izrisalo vse regije tako da zadnje vrstice iz zadnjega komentarja nisem uporabila. Tudi na binderju je vse delalo.
Najlepša hvala za vso pomoč.
Sem dodal povezavo, tako da se lahko z @alenFMF domeniš za termin zagovora, če se seveda že nisi. Če boš do takrat še kaj spreminjala, prosim javi, da posodobim povezavo.
Mislim, da je moj projekt pripravljen za oddajo.