Cum de a desena un cartograma în ggplot2 pachet r statsredy

Ce este cartograma

Cum de a desena un cartograma în ggplot2 pachet r statsredy

zonele cu densitate a populației din regiunea Pskov. Cartograma făcute în ggplot2

Schema generală de creare a cartogramelor prin pachetul ggplot2 mediu R

necesare pentru punerea în aplicare a unor astfel de măsuri pentru a construi cartogramelor:

  1. Ia-o serie de date geografice (spațiale) privind limitele zonelor.
  2. Ia-o matrice cu statisticile pe care distribuția pe care dorim să afișeze pe cartograma (densitatea populației, în cazul nostru).
  3. Atribuirea de date spațiale și statistice, programul știu la care bucată din această statistică se referă plan.
  4. Build cartograma.

Obținem date privind granițele administrative ale zonelor din regiunea Pskov

Ce este [Vector] informații spațiale privind limitele administrative? Acest set de date, care conține informații despre coordonatele punctelor care constituie linia de delimitare a fiecărei regiuni. Modul cel mai legitim liber pentru a obține o matrice - este ia-o din datele OpenStreetMap baza de date. Se stochează date de la granițele administrative ale noastre (draga Patriei și toate celelalte țări), districtele federale și subiecte ale Federației. Regiunea Pskov are, de asemenea, informații cu privire la limitele zonelor și în limitele unor parohii.

Matricea rezultată conține informațiile privind limitele municipalităților din toată România. Lăsând numai regiunea Pskov.

forme <- shapes[shapes$ADM4_NAME=='Псковская область', ]

După cum sa dovedit în timpul creării cartograma în ggplot2, funcția geom_map nu trage o gaură în gropile de gunoi, cel puțin nu am găsit o modalitate de a face acest lucru. Prin urmare, se pare că Pskov și Marea Luca se află în Pskov și zonele Velikie. Și mai mult de o nuanță, că gropile de gunoi sunt completate implicit, în ordinea în care acestea sunt identificatori. Cel mai probabil, există un mod mai elegant de a rezolva această problemă, dar eu sunt încă de gând să „murdar“ prin înlocuirea unui element de identificare a respectivei forme de-orașe din matrice:

# Atunci când exportul de obiecte OSM sunt identificatori cu un „minus“. # Prin urmare, orice obiect cu un ID pozitiv va fi tras după altul. forme $ OSM_ID [forme $ NAME == "Great Luca"] <- 2 shapes$OSM_ID[shapes$NAME=="Псков"] <- 1

Funcțiile pachetului ggplot2 cum ar fi (nevoia) de a lucra cu datele din data.frame format. Prin urmare, am transforma o matrice de clasa „sp“, într-o matrice data.frame clasă:

# Sp-transformarea obiectului într-un data.frame regulat, potrivit pentru ggplot2. # Parametrul de regiune indică în ce domeniu cu termenii și condițiile de grup. # În acest caz, fiecare regiune are un OSM_ID identificator unic de la OpenStreetMap shapesm <- fortify(shapes, region='OSM_ID')

Dacă doriți să marcați fiecare zonă numele său, funcția de ggplot2 geom_text doriți să indicați ei coordonatele locurilor unde va trebui să plaseze un șir de text cu numele. În general, vom potrivi și coordonatele centrelor regionale, și anume centroidul.

# Obținețcoordonatele centroidul fiecărei zone, pentru a plasa # numele districte # centroid.polygon utilizează funcția de pachete de hărți # numesc în mod explicit din pachetul, și anume, folosind. deoarece # Este intern și nu este disponibil în lp normală spațiu de nume <- ddply(shapesm. (id), maps. centroid.polygon) names(lp) <- c('OSM_ID', 'lpx', 'lpy')

În continuare, avem de a face cu limitările acestei metode: marca de Pskov și ceapă stivuite pe eticheta zonelor Pskovului și Velikie.

# Răspândirea eticheta pe verticală. # Coordonate pentru schimbare obținute empiric. lp $ lpy [lp $ OSM_ID == - 956303] <- 58 lp$lpy[lp$OSM_ID==1] <- 57.7 lp$lpy[lp$OSM_ID==-957758] <- 56.52 lp$lpy[lp$OSM_ID==2] <- 56.25

Deci, datele spațiale originale pentru construirea Cartogramele gata. Rămâne să obțină informații concrete cu privire la densitatea populației.

Obținem date cu privire la zonele cu densitate a populației din regiunea Pskov

zone de date populației și zona lor am luat de la Wikipedia și păstrate în csv-fișier.

# Citește matrice cu datele privind zonele de date zonei și a populației <- read.table('/home/sas/1irr/data/regions_square_pop.csv', header=T, sep=';', dec='.') # Считаем плотность data$density <- data$population / data$square # объединяем данные по плотности с координатами центроидов data <- join(data, lp)

Cazul rămâne pentru mici: pentru a desena un grafic.

Construirea unui program ggplot2

Deoarece problema inițială a trebuit să atragă un teanc de diagrame dintr-o dată, am definit o funcție în care toate au program de ajustare aspect comun.

[...] Cum de a desena o cartograma folosind ggplot2 și ggmap [...]

EROARE: configurație nu a reușit pentru pachetul „rgdal“
* Eliminarea '/home/serg/R/i686-pc-linux-gnu-library/3.1/rgdal'
Avertizare în install.packages:
instalarea pachetului „rgdal“ a avut zero, fără ieșire starea

Ați putea să ajute să înțeleagă aceste erori.
R 1.1.1 Axele ubuntu 14.04

Bună ziua, Serghei!

Ceva sa schimbat în site-ul gis-lab.info, iar acum dosarul nr. Noi trebuie să uite, ele sunt acum. Undeva ei au un proiect la granițele administrative, trebuie să fie în scris, în cazul în care fișierele sunt stocate este acum.

> Eroare: GDAL-config nu a fost găsit
În plus față de GDAL sistemul trebuie să fie instalat pentru dezvoltare. Este necesar pentru a compila extensia care depinde de program. Uite ce este în Ubuntu: GDAL-dev sau GDAL-devel, ceva de genul asta. Instalați o și încercați din nou. Pentru Fedora acest lucru este suficient.

Nu înțeleg, și R care costul versiune? 1.1.1?

Bună ziua, Alexandru!

În detrimentul versiunii R, am făcut o greșeală, este necesar 3.1.2.

Cu pachetul de instalare a dat seama, era necesar să intre în primul
sudo apt-get install libgdal-dev
Apoi, a pus doar pachetul.

La cheltuiala de încărcare a cardului, am descarcat de altă parte, în regiunea Penza.
Vă mulțumim!

Lasă un răspuns Anulează răspuns