2017-11-08 12 views
0

시간이 지남에 따라 어떻게 인구가 진화했는지 나타내는지도 (또는 더 좋게는 일련의지도)를 만들고 싶습니다.tmap을 사용하여 와이드 df에서 시계열로 맵을 만드는 방법

의 데이터를 metro 샘플 데이터로 사용합니다.

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 개)가 있으며 값이 고유합니다. 내가 TMAP의 facetting를 사용하고 같은 각 컬럼의 이름을 포함하는 벡터, 만들 수 있습니다 알고

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

을 그리고 그 출력의 :

enter image description here

엉망이 된 데이터를 볼 수 있습니다

으로, 각각의 패싯은 매년 인구 (크기 및 색상) 만 표시하고 싶었지만 모양이 어디에서 왔는지는 알 수 없습니다.

내가 뭘 잘못하고 있는지 말해 줄 수 있겠 니?

답변

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

서비스의 기쁘게! –