Closed jaanos closed 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).
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
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)
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
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.
Popravljeno. Hvala
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.