Graph of attribute per postal code

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Graph of attribute per postal code

Isa-May Kennes
Dear all,


I am quite new to R and have a question related to making graphs based on postal codes.

I have a dateset in which each element has a postal code in Belgium, dataset$zip. There are some other attributes like the exposure in days, dataset$exposure.

I would like to make a plot of the map of Belgium, with for different ranges of exposures different colors per postal code. It could for example resemble something like this (not the upper right graph):

[http://www.eurosurveillance.org/images/dynamic/EE/V20N01/Hens_fig2.png]


How can I achieve this?


Thanks in advance,

Bestregards,

Isa-May

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: Graph of attribute per postal code

Tobias Rüttenauer
Dear Isa-May,

I think the easiest way is to use the choropleth command of the GISTools
package (ggplot is another option). However, you have to transform your
dataframe into a SpatialPolygonsDataFrame. That means you need to merge your
dataframe to a shapefile or some other spatial projection of Belgium (see
package sp).

You can find some examples for choropleth mapping here:
https://rpubs.com/chrisbrunsdon/958

To include four different graphs in one plot you have to set the graphical
parameters to par(mfrow=c(2,2)):

library(GISTools)
data(georgia)

shades1 <- auto.shading(georgia$MedInc, n = 6, cutter = rangeCuts, cols =
brewer.pal(6,
 
"Greens"))
shades2 <- auto.shading(georgia$PctBlack, n = 6, cutter = rangeCuts, cols =
brewer.pal(6,
 
"Blues"))
shades3 <- auto.shading(georgia$PctPov, n = 6, cutter = rangeCuts, cols =
brewer.pal(6,
 
"Reds"))
shades4 <- auto.shading(georgia$PctEld, n = 6, cutter = rangeCuts, cols =
brewer.pal(6,
 
"Greys"))

par(mfrow=c(2,2),oma=c(0,0,0,0), mar=c(0,0,0,0))   # 2 graphs per col, 2
graphs per row, no margins

choropleth(georgia, georgia$MedInc, shades1)
choro.legend(-82, 35.27, shades1, title = "MedInc", cex=0.8, bty="n")

choropleth(georgia, georgia$PctBlack, shades2)
choro.legend(-82, 35.27, shades2, title = "PctBlack", cex=0.8, bty="n")

choropleth(georgia, georgia$PctPov, shades3)
choro.legend(-82, 35.27, shades3, title = "PctPov", cex=0.8, bty="n")

choropleth(georgia, georgia$PctEld, shades4)
choro.legend(-82, 35.27, shades4, title = "PctEld", cex=0.8, bty="n")

par(mfrow=c(1,1))

A very good introduction to spatial mapping can be found in Brunsdon &
Comber (2015): "An indroduction to R for spatial analysis and mapping",
Sage.

Best
Tobias



> -----Ursprüngliche Nachricht-----
> Von: R-sig-Geo [mailto:[hidden email]] Im Auftrag von
Isa-

> May Kennes
> Gesendet: 09 July 2016 00:31
> An: [hidden email]
> Betreff: [R-sig-Geo] Graph of attribute per postal code
>
> Dear all,
>
>
> I am quite new to R and have a question related to making graphs based on
> postal codes.
>
> I have a dateset in which each element has a postal code in Belgium,
> dataset$zip. There are some other attributes like the exposure in days,
> dataset$exposure.
>
> I would like to make a plot of the map of Belgium, with for different
ranges of

> exposures different colors per postal code. It could for example resemble
> something like this (not the upper right graph):
>
> [http://www.eurosurveillance.org/images/dynamic/EE/V20N01/Hens_fig2.png]
>
>
> How can I achieve this?
>
>
> Thanks in advance,
>
> Bestregards,
>
> Isa-May
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> [hidden email]
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo