(Acest articol a fost publicat pentru prima dată pe Ozancan Ozdemirși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
PIE Grafic … băiatul nedescris al familiei de vizualizare. Cu toate acestea, obține o popularitate, mai ales atunci când este în conjugare cu hărțile. De exemplu, a fost publicată următoarea diagramă pentru a ilustra distribuția voturilor în toată țara.
În această postare, vă voi arăta cum puteți desena o diagramă de plăcintă pe hartă în r folosind scatterpie
pachet. Puteți afla mai multe despre pachet, uitându -vă la vigneta sa aici.
În timpul acestui tutorial, parcurgem în special desenarea unui grafic pe o hartă a curcanului, explicând pașii cheie cu privire la pachet.
Dacă doriți să știți cum să desenați o hartă de curcan în R, puteți vizita una dintre postările mele anterioare aici.
Cel mai important punct de utilizare a pachetului este setul de date. Setul de date cu care lucrați ar trebui să aibă patru coloane cheie pentru a putea utiliza pachetul. Aceste coloane sunt:
-
lung: Longitudinea centrului graficului de plăcintă
-
lat: Latitudinea centrului graficului de plăcintă
-
Clasa1: Prima clasă a graficului de plăcintă (în %)
-
Clasa2: A doua clasă a graficului de plăcintă (în %)
-
raze: Raza graficului de plăcintă (opțional)
Vă puteți gândi la graficele produse de acest pachet este un strat în care mai multe diagrame de plăcintă sunt împrăștiate pe axa latitudinii și longitudinii.
Mai întâi sunați la biblioteci.
library(ggplot2) library(sf) # for reading the shapefile library(scatterpie) # for drawing pie charts
Să luăm în considerare un set de date tr_data
care conține nume de provincie, informații geografice corespunzătoare (LAT și Long) și două categorii pentru nivel de educație pe provincie (cel puțin absolvent universitar sau mai jos), care este preluat de la TSI Turkish Statistic Institute, iar datele sunt din 2023.
head(tr_data) il at_least_university_graduate below lat long 1 Adana 16.867601 83.13240 37.00 35.32 2 Adiyaman 13.657282 86.34272 37.76 38.28 3 Afyonkarahisar 13.788480 86.21152 38.76 30.54 4 Agri 9.909207 90.09079 39.72 43.05 5 Aksaray 13.256213 86.74379 38.37 33.99 6 Amasya 17.080516 82.91948 40.65 35.83
Următorul cod arată exact cum scatterpie
fabrică. Funcția principală există geom_scatterpie
Aceasta necesită coloane longitudine, latitudine și categorie ca intrare.
ggplot() + geom_scatterpie(aes(x=long, y=lat), data=tr_data, cols=c("at_least_university_graduate","below"))
Graficul de împrăștiere de mai sus ilustrează practic liniile generale ale hărții Turciei. Acum, să adăugăm un alt strat, care este o hartă a curcanului.
st_data_turkey <- st_read("https://geodata.ucdavis.edu/gadm/gadm4.1/json/gadm41_TUR_1.json") head(st_data_turkey) Simple feature collection with 6 features and 11 fields Geometry type: MULTIPOLYGON Dimension: XY Bounding box: xmin: 29.6638 ymin: 36.5385 xmax: 44.4965 ymax: 41.0905 Geodetic CRS: WGS 84 GID_1 GID_0 COUNTRY NAME_1 VARNAME_1 NL_NAME_1 TYPE_1 ENGTYPE_1 CC_1 1 TUR.1_1 TUR Turkey Adana Seyhan NA Il Province NA 2 TUR.2_1 TUR Turkey Adiyaman Adıyaman NA Il Province NA 3 TUR.3_1 TUR Turkey Afyon Afyonkarahisar NA Il Province NA 4 TUR.4_1 TUR Turkey Agri Ağri|Karaköse NA Il Province NA 5 TUR.5_1 TUR Turkey Aksaray NA NA Il Province NA 6 TUR.6_1 TUR Turkey Amasya NA NA Il Province NA HASC_1 ISO_1 geometry 1 TR.AA TR-01 MULTIPOLYGON (((35.4143 36.... 2 TR.AD TR-02 MULTIPOLYGON (((38.1033 37.... 3 TR.AF NA MULTIPOLYGON (((30.1946 37.... 4 TR.AG TR-04 MULTIPOLYGON (((43.102 39.3... 5 TR.AK TR-68 MULTIPOLYGON (((33.2495 38.... 6 TR.AM TR-05 MULTIPOLYGON (((35.3708 40....
Codul de mai jos arată cum să desenezi o hartă a Turciei folosind sf
pachet.
ggplot(data = st_data_turkey) +geom_sf()
Avem toate ingredientele acum! Să combinăm împreună harta și graficul de plăcintă.
ggplot(data = st_data_turkey) +geom_sf()+ geom_scatterpie(aes(x=long, y=lat), data=tr_data, cols=c("at_least_university_graduate","below"))
În loc să combinați aceste două funcții folosind două date separate, puteți combina și geodata de curcan și tr_data
pe numele provinciei și continuați și cu aceste date.
După această notă de subsol, putem personaliza complotul adăugând unele etichete și schimbând tema. Putem edita culori în etichete de diagramă și legendă folosind scale_fill_manual
.
Putem schimba tema hărții folosind theme_void()
şi theme()
Funcții.
Putem adăuga nume din provincie pe hartă folosind geom_text()
funcţie.
ggplot(data = st_data_turkey) +geom_sf()+ geom_scatterpie(aes(x=long, y=lat), data=tr_data, cols=c("at_least_university_graduate","below")) + scale_fill_manual(values = c("#FF9999", "#66B3FF"),labels = c("At least university graduate", "Below university graduate")) + labs(title = "Turkey Map with Pie Chart", subtitle = "Education Level by Province", caption = "Source: TSI | Ozancan Ozdemir") + theme_void() + geom_text(aes(x=long, y=lat, label=il), data=tr_data, size=2, color="black") + theme(plot.title = element_text(hjust = 0.5, size = 20), plot.subtitle = element_text(hjust = 0.5, size = 15), plot.caption = element_text(hjust = 0.5, size = 10), legend.position = "top", legend.title = element_blank())
Pentru mai multe întrebări și comentarii, vă rugăm să nu ezitați să vă adresați prin e-mail.
Puteți face clic aici pentru a reveni la pagina principală