2017-11-22 4 views
2

rworldmap으로 플롯 할 데이터가 있습니다. 일반적으로 잘 작동합니다. 그러나 그것이 왜 그렇게 될 것이라고 말하면 모든 데이터에 계획을 세우지 않는지 알 수는 없습니다. 특히 그것은 미국에 대한 데이터를 플로팅하지 않습니다.rworldmap을 사용할 때 맵 플롯이 불완전합니다.

나는 여기에 몇 가지 데이터를 가지고 : https://drive.google.com/file/d/1Fp7O2TRH5Blar56SqdRdcPh8Mb1Vb0pc/view?usp=sharing

그리고 나는이 코드를 실행 해요 :

mergedData = readRDS("sampleData.rds") 
changeHeatMapPalette = c('#D7191D', '#FDAE61', '#FFFFBF', '#ABD9E9', '#2C7BB6') 
mapData = joinCountryData2Map(mergedData, joinCode="ISO2", nameJoinColumn="country", mapResolution = "high") 
mapCountryData(mapData, nameColumnToPlot="change", mapTitle="", catMethod = "diverging", colourPalette = changeHeatMapPalette, numCats = 90, borderCol = "grey70") 

그러나 나는이지도를 받고 있어요 : map plot

통지 방법을 미국에는 데이터가 없습니다. 그러나 그것은 샘플 데이터에 분명히 있습니다. 미국이 아닌 한 국가 만 제외하고 있습니다.

108 codes from your data successfully matched countries in the map 
1 codes from your data failed to match with a country code in the map 
    failedCodes 
[1,] "GF"  
143 codes from the map weren't represented in your data 

내가 뭘 잘못하고 있니?

+1

가'라이브러리 ('rworldmap')를'추가하십시오입니다했다 가졌 – storaged

+0

또는'라이브러리 (rworldxtra)', 사용하고있는 것 같습니다 – storaged

답변

3

colourPalettenumCats 매개 변수를 임의로 설정하는 것이 문제입니다.

데이터에서 우리는 정확히 얼마나 많은 카테고리를 가지고 있는지 알 수 있습니다. 즉, length(table(mapData$change)으로 계산할 수 있으며 정확히 여러 색상이 필요합니다 (mapCountData은 경고로 보간됩니다).

가 문제의 하나 개의 솔루션은 코드가 완벽하게 재현 할 수 있도록이

mapCountryData(mapData, 
    nameColumnToPlot="change", 
    mapTitle="", 
    catMethod = "diverging", 
    colourPalette = brewer.pal(library(RColorBrewer), 'RdYlBu'), 
    numCats = length(table(mapData$change)), 
    borderCol = "grey70") 

enter image description here

+0

고마워요! 매우 도움이됩니다. 나는 numCats가 정확할 필요가 있다는 것을 깨닫지 못했습니다. 나는 그들이 일종의 백그라운드에서 히스토그램을 설정하고 그 수의 버킷에 모든 데이터를 저장하는 것으로 생각했습니다. 그리고 색상에 대한 보간 경고를 얻는 동안 * 보간하는 것이 좋았습니다. – chrislarson