2012-05-02 55 views
2

我希望能夠繪製出我自己的價值觀,以滿足各國的國情。例如:中國,美國,英國,加拿大和俄羅斯使用自己的值創建世界地圖的RScript

我有我自己的txt文件,有3列 - ISO3V10,國家和文件數量。

ISO3V10 Country    No of Documents 
CAN  Canada    30 
CHN  China    20 
RUS  Russia    10 
GBR  United Kingdom  38 
USA  United States  50 

的想法是對的Country彩色的世界地圖和該所描繪的數據是No of Documents

到目前爲止,我已經做到了這一點:

myData2 <- read.delim("noofdocuments.txt",header=T, sep='\t') 
names(myData2) 
myData2[] 

jessdata <- data.frame(myData2=c("China", "United States", "United Kingdom", 
           "Russia", "Canada")) 
sPDF <- joinCountryData2Map(jessdata, 
          joinCode = "NAME", 
          nameJoinColumn = "myData2") 
par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i") 
mapCountryData(sPDF, nameColumnToPlot="REGION") 

理想我想SPDF是:

sPDF <- joinCountryData2Map(countryExData, 
          joinCode = "ISO3", nameJoinColumn = "ISO3V10") 

也爲區域中:

mapCountryData(sPDF, nameColumnToPlot="No.of.Documents") 

我已經嘗試了所有儘可能做到這一點,這就是爲什麼我把REGION作爲nameColumnToPlot的原因,因爲這是我得到它的唯一辦法。

有人能告訴我我的代碼出錯了嗎?

+2

你的例子不是自包含的,你應該在開頭添加 「library(rworldmap)」。另外,你可以使用myData2上的函數dput()來讓讀者更容易嘗試你的例子。 –

回答

4

如果下面的代碼爲你工作,那麼有可能是您的文本文件的格式或方式有問題,它被讀入R.

library(rworldmap) 

countryExData<-read.table(text=" 
ISO3V10\tCountry\tNo of Documents 
CAN\tCanada\t30 
CHN\tChina\t20 
RUS\tRussia\t10 
GBR\tUnited Kingdom\t38 
USA\tUnited States\t50" 
,sep="\t",header=TRUE) 

# > countryExData 
# ISO3V10  Country No.of.Documents 
# 1  CAN   Canada    30 
# 2  CHN   China    20 
# 3  RUS   Russia    10 
# 4  GBR United Kingdom    38 
# 5  USA United States    50 

sPDF <- joinCountryData2Map(countryExData, 
          joinCode = "ISO3", nameJoinColumn = "ISO3V10") 
# 5 codes from your data successfully matched countries in the map 
# 0 codes from your data failed to match with a country code in the map 
# 241 codes from the map weren't represented in your data 

par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i") 
mapCountryData(sPDF, nameColumnToPlot="No.of.Documents") 

World map with number of docs

是否奏效,您應該檢查您的countryExData對象(或myData2?從您的帖子中不清楚)是否與上述對象存在差異。如果您沒有發現任何錯誤,請在原始帖子中張貼dput(head(countryExData))的結果。