Closed BraMira closed 9 years ago
Pri zadnji bolj natančno, ne vem kako bi koordinate in imena povedala, katere naj pogleda.
Tako, raje naj bo zemljevid berljiv - tako ni potrebno izpisovati imen držav, za katere nimaš podatkov. Tudi za majhne države (npr. Luksemburg) nima smisla pisati imen; drugim ga lahko nekoliko skrajšaš in/ali zmanjšaš. Puščice načeloma lahko dodajaš z ukazom arrows
, a se žal z spplot
ne razume najbolje. Sicer pa si nekatera imena že premaknila - če bi želela na mesto države narisati točko, si pomagaš z "sp.points"
.
Tako lahko narišeš samo imena držav, za katere imaš podatke; poleg tega ti Portugalsko izpiše navpično, na mesto Monaka pa naredi rdečo piko (te morda sicer nočeš):
rot <- ifelse(imena1 == "Portugal", 90, 0)
evropa$Povprečje.2004 <- Evropa$Povprecje_2004
p2004 <- !is.na(Evropa$Povprecje_2004)
print(spplot(evropa,"Povprečje.2004",col.regions=topo.colors(50),
main = "Povprečna pričakovana starost v letu 2004",
sp.layout = list(list("sp.text",koord[p2004,],imena1[p2004],cex=0.4,srt=rot[p2004]),
list("sp.points", evropa[evropa$CntryName == "Monaco",],
pch = 19, col = "red"))))
Kako bi pa naredila, da bi potem pri Monaku poleg imena pisalo še vrednost zraven?
A ni možno puščic risati v spplot
pri sp.layout
, da napišeš "sp.lines"
?
Če hočeš, da se še kaj zraven izpiše, potem bo trebo to vključiti pri "sp.text"
- v tem primeru bo potrebno poskrbeti, da p2004
vključuje želene koordinate, ter da je ustrezno besedilo v imena1
. Lahko bi seveda dodala tudi nov ukaz "sp.text"
.
"sp.lines"
zna risati črte, ampak dela nekoliko drugače kot lines
. Koordinate točk namreč pričakuje v objektu tipa Line
, ki ga dobimo iz matrike koordinat (kot koord
, ampak s samo dvema vrsticama, če želimo eno samo črto). Če zna risati tudi puščice, nisem ugotovil. Nekoliko zamaknjen napis "Monaco"
in črto do (nezamaknjene) pike lahko torej dobiš tako:
monaco <- koord[rep("Monaco", 2),]
monaco[1,] <- monaco[1,] - c(1, 2)
koord["Monaco",] <- monaco[1,]
p2004 <- !is.na(Evropa$Povprecje_2004) | evropa$CntryName == "Monaco"
print(spplot(evropa,"Povprečje.2004",col.regions=topo.colors(50),
main = "Povprečna pričakovana starost v letu 2004",
sp.layout = list(list("sp.text",koord[p2004,],imena1[p2004],cex=0.4,srt=rot[p2004]),
list("sp.points", evropa[evropa$CntryName == "Monaco",],
pch = 19, col = "red"),
list("sp.lines", Line(monaco), col = "red"))))
Zdaj sem ugotovila, da mi ene države sploh ne pobarva oz. ene ko ne bi smel pa jih. Vidim, da je napaka v tem, da v tabelo Evropa ni dodalo vseh držav iz ZivZad, kot npr. United Kingdom, vendar ne vem kako bi popravil oz. kje točno se zalomi.
Monaka dejansko nimaš med podatki, tako da ga bodisi pobrišiz iz zemljevida, ali pa dodaj s funkcijo preuredi
(trenutno počneš oboje). Tam bo potrebno dodati Črno goro; v podatkih imaš še Ciper, ki pa ga ni na zemljevidu. Lahko se ga znebiš pri preurejanju:
Evropa <- preuredi1(ZivZad[rownames(ZivZad) != "Cyprus",],evropa)
Prej je bilo dodanih preveč držav (več kot v zemljevidu), zato je zadnjo izpustilo.
Zdaj dela. Hvala.
Kako bi pri prvem zemeljvidu naredila, da ima vsaka regija svojo barvo? Pri zemljevidu Evrope je boljše, če se imena držav za katerih ni podatkov, ne izpišejo? Pri državah, ki so zelo male in imena ne izgledajo preveč lepo kot npr. Monako, kako bi samo za nekaj teh določenih naredila, tam kvadratek in potem potegnila črto do imena, ki bi bilo malo premaknjeno za preglednost?