2017-11-08 3 views
0

人口が時間とともにどのように進化したかを表すマップ(または、より良い一連のマップ)を作成したいと思います。tmapを使用してワイドdfから時系列のマップを作成する方法

わかりやすくするために、私はのサンプルデータに組み込まれたtmapを使用します。

library(tmap) 
data("World", "metro") 

> str([email protected]) 
'data.frame': 436 obs. of 12 variables: 
$ name  : chr "Kabul" "Algiers" "Luanda" "Buenos Aires" ... 
$ name_long: chr "Kabul" "El Djazair (Algiers)" "Luanda" "Buenos Aires" ... 
$ iso_a3 : chr "AFG" "DZA" "AGO" "ARG" ... 
$ pop1950 : num 170784 516450 138413 5097612 429249 ... 
$ pop1960 : num 285352 871636 219427 6597634 605309 ... 
$ pop1970 : num 471891 1281127 459225 8104621 809794 ... 
$ pop1980 : num 977824 1621442 771349 9422362 1009521 ... 
$ pop1990 : num 1549320 1797068 1390240 10513284 1200168 ... 
$ pop2000 : num 2401109 2140577 2591388 12406780 1347561 ... 
$ pop2010 : num 3722320 2432023 4508434 14245871 1459268 ... 
$ pop2020 : num 5721697 2835218 6836849 15894307 1562509 ... 
$ pop2030 : num 8279607 3404575 10428756 16956491 1718192 ... 
> 

データからわかるように、データは、独自の値のセットを持つ複数の変数(1年に1つ)が存在するワイドフォーマットで構造化されています。 、

enter image description here

データがめちゃめちゃにされた見ることができるように:

tm_shape(World) + 
    tm_polygons() + 
tm_shape(metro) + 
    tm_dots(c("pop2010", "pop2020"), col = c("pop2010", "pop2020"), 
      size = c("pop2010", "pop2020"), border.col = "black") 

そして、それは出力です:私はTMAPの面取りを使用し、各列の名前を含むベクトルを作成し、そのようにすることができます知っています私は各ファセットが(サイズと色で)毎年の人口のみを表示したいと思っていましたが、どこから形が来るのか分かりません。

私が間違っていることを教えてください。

答えて

1

1つの変数(母集団サイズ)がある場合は、サイズがの両方の母集団を表示する理由がわかりません。

あなたは次のことを試すことができます。

library(tmap) 
data("World", "metro") 
tm_shape(World) + tm_polygons() + 
tm_shape(metro) + tm_dots(size = c("pop2010", "pop2020"), col = "red", border.col = "black") 

それは、次の絵になります - 地下鉄エリアのマップを、人口規模をマーキングドットのサイズで。赤い色が私の強調です(デフォルトは黒です)。

tmap of metro population

+0

ありがとうございます!私は、この例が同じ値に対して色とサイズを持つことにはあまり意味がないことに同意しますが、私は実際のシナリオでそれを行います。あなたの答えのおかげで、私の問題は最初のベクトルであることに気付きました。よろしくご協力ください – ccamara

+0

サービスの喜んで! –

関連する問題