SanjaAudi / APPR-2014-15

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

Zemljevidi in poročilo #4

Closed jaanos closed 9 years ago

jaanos commented 9 years ago

Poročila ti ne prevede, ker se sklicuješ na neobstoječ zemljevid zemljevid_evropa_1998.pdf. Razmisli tudi, katere zemljevide je smiselno prikazati (morda lahko narediš selekcijo, namesto da kažeš podatke za vsako leto).

Na zemljevidih sveta nimaš legend. Ker uporabljaš isto lestvico kot na zemljevidih Evrope, lahko seveda na isti način rišeš legende.

jaanos commented 9 years ago

Glede na to, da imaš v torek predstavitev, te prosim, da do jutri poskrbiš, da bo na GitHub naložena delujoča verzija programa in poročila. Če ti že ne uspe urediti drugih pripomb, poskrbi vsaj, da ti bo poročilo prevedlo (torej iz njega odstrani odvečni zemljevid).

SanjaAudi commented 9 years ago

Sem uredila, mislim da bi mi sedaj moralo prevesti poročilo. Imam pa še dve vprašanji v zvezi z imeni na zemljevidu:

m <- match(row.names(AudiByMarkets), evropa$name) koordinate <- coordinates(evropa) rownames(koordinate) <- evropa$name imena <- as.character(evropa$name) names(imena) <- evropa$name

in potem v plot evrope za eno leto naprimer: plot(evropa, col = barve.svet[match(evropa$name, row.names(AudiByMarkets))], xlim = c(-20, 20), ylim = c(33, 73), text(koordinate[m,], labels = imena[m], cex = 0.5))

mi potem noče odpreti pdfja.. Kaj delam narobe?

n <- match(row.names(AudiByMarkets), world$name) koordinate <- coordinates(world) rownames(koordinate) <- world$name imena <- as.character(world$name) names(imena) <- world$name

v plot pa potem: text(koordinate[n,], labels = imena[n], cex = 0.5) ??

Glede na to da so izven Evrope samo United States, China in Japan, ali je lažje da vključim samo ta 3 imena ali naredim za vse ki so v tabeli razen Evrope? In kako se to naredi? Hvala

jaanos commented 9 years ago

Pri prvi točki je problem pri samem risanju zemljevida, saj poskušaš ukaz text vključiti kar v plot. Šlo bo, če izvedeš enega za drugim, npr.

plot(evropa, col = barve.svet[match(evropa$name, row.names(AudiByMarkets))],
     xlim = c(-20, 20), ylim = c(33, 73))
text(koordinate[m,], labels = imena[m], cex = 0.5)

Druga točka bi tudi šla - seveda je tvojemu zemljevidu ime svet, ne world, in pa text pride seveda za plot, kot zgoraj. Seveda lahko pripraviš imena in koordinate za vse zemljevide (sveta in Evrope) skupaj, pa potem na ustrezne napišeš ustrezna imena. Če bi se želela omejiti na tri omenjene države na zemljevidih sveta, bi šlo nekako tako:

rest <- c("United States", "China", "Japan")
m <- match(row.names(AudiByMarkets), svet$name)
n <- match(rest, svet$name)
koordinate <- coordinates(svet)
rownames(koordinate) <- svet$name
imena <- as.character(svet$name)
names(imena) <- svet$name

Sedaj lahko prirediš imena, kot to narediš za Veliko Britanijo - po potrebi lahko skrajšaš tudi kako drugo ime. Koristilo bo, če nekoliko premakneš Japonsko, da ne bo oznaka šla čez mejo (enako lahko storiš tudi z evropskimi državami, a bodo tam odmiki manjši):

koordinate["Japan",2] <- koordinate["Japan",2] - 8 # spreminjamo 2. stolpec - y koordinato

Sedaj lahko tako pripravljena imena in koordinate uporabiš za izpis imen na zemljevid sveta:

text(koordinate[n,], labels = rest, cex = 0.5)

ter zemljevid Evrope:

text(koordinate[m,], labels = imena[m], cex = 0.5)
SanjaAudi commented 9 years ago

Sem naredila zdaj to, za Evropo mi super deluje a na zemljevidu sveta mi China napiše na Afriko, United States pa čez Japan, oboje v morju :D, zakaj mi to naredi?

In pa če mi poveste kako naj izključim iz zemljevida tista imena za katera nimam podatka v tem letu. Hvala

jaanos commented 9 years ago

Problem je v tem, da imaš indeksni vektor n za imena na zemljevidu sveta, ki ga potem prepišeš z istoimensko spremenljivko, ki ti določa število barv. Svetujem, da preimenuješ indeksni vektor, npr. v r (zamenjaš z novim imenom pri definiciji in vsakič, ko pišeš oznake - sicer pa bi bilo koristno imeti nekoliko bolj pomenljiva imena spremenljivk).

Če hočeš izključiti imena držav, za katera nimaš podatkov, potem bo potrebno ustrezno filtrirati indeksni vektor. Pri zemljevidih Evrope uporabljaš kar vse vrstice, tako da lahko enostavno narediš

mm <- m[!is.na(AudiByMarkets$X2001)]
text(koordinate[mm,], labels = imena[mm], cex = 0.5)

Pri zemljevidih sveta bo potrebno še pobrati ustrezne vrstice iz podatkov:

rr <- r[!is.na(AudiByMarkets[rest,"X2001"])]
text(koordinate[rr,], labels = rest, cex = 0.5)

To bo seveda potrebno storiti za vsak zemljevid z ustreznim stolpcem.

SanjaAudi commented 9 years ago

Popravljeno. Hvala