LEFT-MENU
PENDING

Gengivelse af kortdata i R med ggplot2 pakken.


Af LARS den 2018.01.25
Jeg kikker her på mulighederne og kvaliteten af nationale kortgrænser gengivet med ggplot2 samt indlejring af yderligere information på kortene.

MAPS og GGPLOT2

Den umiddelbart hurtigst tilgængelige R pakke med kort data er maps og ggplot2 er en glimrende visualiserings pakke til gengivelse af blandt andet kort data med flere lag. Du kan finde .pdf referencerne til maps pakken her og til ggplot2 pakken her.

Lad os starte med at lave to plots, et verdenskort samt et japansk udsnit af kortet.



> # indlæs nødvendige pakker og indstil arbejdsbibliotek
> library(maps)
> library(ggplot2)
> library(grid)
> library(gridExtra)
> setwd("~/.")
>
> # indlæs verdenskort fra pakken og plot som polygon
> wld<-map_data("world")
>
> p1<-ggplot(data=wld)+geom_polygon(aes(x=long,y=lat,group=group))+theme_void()+coord_fixed(2.5)
> p2<-ggplot(data=wld)+geom_polygon(aes(x=long,y=lat,group=group,fill=group),show.legend=FALSE)
> p2<-p2+theme_void()+coord_fixed(2.5)
> p3<-ggplot(data=wld)+geom_polygon(aes(x=long,y=lat,group=group,fill=group),show.legend=FALSE,col="white")
> p3<-p3+theme_void()+coord_fixed(2.5)
>
> grid<-grid.arrange(p1,p2,p3,layout_matrix=rbind(c(1,2,3)),top=textGrob("Verdens kort",x=0,just="left",
             gp=gpar(fontsize=17)),bottom=textGrob("Analysis On Purpose",x=1,hjust=1,gp=gpar(fontface=3L,fontsize=9)))
> ggsave("Verdenskort.png",grid)
>
> # indlæs Japan kort fra pakken og plotter som polygon
> jp<-map("world",region="japan")
> p1<-ggplot(data=jp)+geom_polygon(aes(x=long,y=lat,group=group))+theme_void()
> p2<-ggplot(data=jp)+geom_polygon(aes(x=long,y=lat,group=group),col="white")+theme_void()
> p3<-ggplot(data=jp)+geom_polygon(aes(x=long,y=lat,group=group,fill=group),show.legend=FALSE,col="white")
> p3<-p3+theme_void()
> p4<-ggplot(data=jp)+geom_polygon(aes(x=long,y=lat,group=group,fill=group),show.legend=FALSE,col="white")
> p4<-p4+theme_void()+scale_fill_gradient(low="blue",high="red")
>
> grid<-grid.arrange(p1,p2,p3,p4,layout_matrix=rbind(c(1,2),c(3,4)),top=textGrob("Japan kort",x=0,just="left",
             gp=gpar(fontsize=17)),bottom=textGrob("Analysis On Purpose",x=1,hjust=1,gp = gpar(fontface=3L,fontsize=9)))
> ggsave("Japan.png",grid)
>

Verden gengivet fra maps pakken Japan gengivet fra maps pakken


Ovenfor er yderligere brugt pakkerne grid og gridExtra, der på en let og elegant måde muliggør flere plots i samme vindue.

Da Japan kortet blot er et lille udsnit af det store verdenskort synes grænserne at være meget pixelerede, yderligere ses det af de farvede kort at regionerne i Japan er meget overordnede. Det er der heldigvis råd for da vi kan hente pakken mapdata, der indeholder et detaljeret kort over Japan. Du kan finde .pdf referencerne til maps pakken her.
Afslutningsvis flytter vi dataangivelsen fra ggplot() kaldet til geom_polygon kaldet og muliggør punktplots fra et ekstra datasæt.


> # indlæs mapsdata pakken
> library(mapdata)
> > # indlæs detaljeret Japan kort fra pakken og plotter som polygon
> jp<-map_data("japan")
> p1<-ggplot()+geom_polygon(data=jp,aes(x=long,y=lat,group=group),show.legend=FALSE)+theme_void()
> p2<-ggplot()+geom_polygon(data=jp,aes(x=long,y=lat,group=group,fill=group),show.legend=FALSE)+theme_void()
> p3<-ggplot()+geom_polygon(data=jp,aes(x=long,y=lat,group=group,fill=group),show.legend=FALSE,col="white")
> p3<-p3+theme_void()
> p4<-ggplot()+geom_polygon(data=jp,aes(x=long,y=lat,group=group,fill=group),show.legend=FALSE,col="white")
> p4<.p4+theme_void()+scale_fill_gradient(low="blue",high="red")
>
> grid<-grid.arrange(p1,p2,p3,p4,layout_matrix=rbind(c(1,2),c(3,4)),top=textGrob("Detaljeret Japan kort",x=0,just="left",
             gp=gpar(fontsize=17)),bottom=textGrob("Analysis On Purpose",x=1,hjust=1,gp=gpar(fontface=3L,fontsize=9)))
> ggsave("JapanDetalje.png",grid)
>
> # Skaber et kort datasæt med tre punkter til plot på Japan kort.
> dat<-as.data.frame(rbind(c(36.60923,139.7302),c(36.71090,137.7259),c(43.77064,142.3648)))
> colnames(dat)<-c("lat","long")
>
> # Skaber et kort datasæt med tre punkter til plot på Japan kort.
> p1<-ggplot()+geom_polygon(data=jp,aes(x=long,y=lat,group=group))+geom_point(data=dat,aes(long,lat),col="green")
> p1<-p1+ggtitle("Detaljeret Japan kort med tre grønne prikker")
> p1<-p1+theme(axis.title.x=element_blank(),axis.title.y=element_blank())+theme(plot.title = element_text(size=11))
> ggsave("2018_01_25_01_4.png",p1)
>

Japan detaljeret gengivet fra mapdata pakken Japan detaljeret gengivet med ekstra datalag fra mapdata pakken




Første kik på Simple Feature pakken og en dansk kommune.

Af LARS den 2017.03.30.

Standard Simple Feature Plot Nu hvor sf pakken er installeret skal den sættes på arbejde med nogle spatiale kort data med det langsigtede mål at kunne plotte geografisk fordeling af ressourcer.
Læs mere

Installation af R's sf pakken på Ubuntu 16.04 Xenial.

Af LARS den 2017.03.30.

At få Simple Features pakken til at køre er endnu lidt af et puslespil, der kræver lidt research og diverse hacks.
Læs mere

Polygoner med R, Del 1

Af LARS den 2017.03.23.

Cirkel polygon Indledende kik på polygoner med ggplot2 i R.
Læs mere

Folkeskoler i Vejle, Del 5

Af LARS den 2016.04.13.

Indekseret fremskrivning Korrelationsanalyse af årgangsstørrelse på folkeskoler
Læs mere

RIGHT-MENU
PENDING

BOTTOM-BAR
PENDING