2017-03-29 9 views
0

私は英国にいくつかのデータを持っており、私はイギリスの9つの地域全ての地図を紹介する必要があります。私は図書館(地図)を使ってみましたが、私が得たプロットには地域情報がなく、私は英国全体で終わります。領域マッピングのための空間データ

は、理想的には私はこの https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/English_regions_2009.svg/370px-English_regions_2009.svg.png

のような結果を探しています(私は実際に起因するに写真を添付し​​てカント評判ポイント、謝罪のが不足している!)

私のデータが持つ地域の列を持っています文字値:

  EastMid 
     EastEng 
     London 
     NorthEast 
     NorthWest 
     SouthEast 
     SouthWest 
     WestMid 
     Yorkshire 

は、私はその後、別の属性

と色領域でマッピングするために行くだろう

どうすればこのことについてやりますか?

+0

はおそらくあなたの最善の策は、既に作成した領域吹き出物とシェープファイルを見つけることになるだろう値をマップすることができます。 'uk shapefile'用のクイックグーグリンは、さまざまなソースを提供しています。その中でもSE上のこの記事はhttp://gis.stackexchange.com/questions/154540/where-can-i-find-spatial-data-forです-uk-administrative-boundaries –

答えて

0

まず、Andrewが書いたように、必要な領域を持つシェープファイルを見つけてダウンロードする必要があります。このような分割は、通常、履歴領域または標準統計領域と呼ばれます。 http://www.natureonthemap.naturalengland.org.uk/

第2に、シェイプファイルを読んで国民投票データとマージします。この中で

library(rgdal)  
library(tmap) 
geoEN = readOGR(".", "maghistengland") 

:投票ファイルの領域名は(あなたが別のシェープファイルの名前は、おそらく違うだろうをダウンロードする場合、私は、上記のサイトからダウンロードしたファイルを使用します)地理空間ファイルと全く同じであることを確認してください大文字と小文字のリージョン名はNAMEに格納されます(別のシェイプファイルの属性名では異なる場合があります)。地理空間ファイルで構成されている情報を確認するには、次のようにします。

ogrInfo(".", "maghistengland") 

この例では、投票結果の偽造図を作成しています。

votes = as.data.frame(
    cbind(
    c("EAST MIDLANDS", 
    "EAST OF ENGLAND", 
    "LONDON", 
    "NORTH EAST", 
    "NORTH WEST", 
    "SOUTH EAST", 
    "WEST MIDLANDS", 
    "YORKSHIRE AND THE HUMBER", 
    "SOUTH WEST"), 
    c(60, 65, 55, 50, 45, 40, 35, 30, 30), 
    c(40, 35, 45, 50, 55, 60, 65, 70, 70) 
), stringsAsFactors = FALSE) 

names(votes) = c("Regions", "Yes", "No") 

votes$Yes = as.numeric(votes$Yes) 
votes$No = as.numeric(votes$No) 
votes$Result = colnames(votes)[max.col(votes[,2:3])+1] 

今、私たちは、両方のファイルをマージすることができます

mapEN = append_data(geoEN, votes, key.shp = "NAME", key.data = "Regions") 

第三に、必要なグラフを作成します。ここに3つの例があります。あなたは、グループの数と遊ぶことができる(N = 2、3、4 ...)、色など

tm_shape(mapEN) + 
    tm_fill("Yes", title = "This is a title", palette = "Blues", n=4) + 
    tm_borders(alpha=.5) 

tm_shape(mapEN) + 
    tm_fill("No", title = "This is a title", palette = "Reds", n=5) + 
    tm_borders(alpha=.5) 

tm_shape(mapEN) + 
    tm_fill("Result", palette = c("Red", "Blue")) + 
    tm_borders(alpha=.5) 

enter image description here

+0

あなたの非常に詳細な回答をありがとう!大変感謝しています –

関連する問題