使用RSCript将数字/数据点绘制到世界地图上

时间:2012-05-15 18:25:12

标签: r rworldmap

使用RSCript和rworldmap包。我想创建一个输出,以便能够显示每个公司内发布的文档的数量。粗略地基于mapPies,而不是使用饼图,只能在图表上显示数据。

我有自己的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

对于美国来说,数字50会出现,而英国则是38等...在下图所示!!!!

我有想看的图像,但我无法发布任何图片,如果需要澄清,很乐意发送

我使用RSCript和rworldmap创建了一个世界地图,以便应用能够实现这一目标的代码。

我用于生成世界地图的代码如下:

library(rworldmap) 
require(rworldmap)
myData2 <- read.delim(file="C:\\Documents\\Projects\\RScriptAnalysis\\noofpublications2.txt", header = TRUE, sep = "\t")
names(myData2)
sPDF2 <- joinCountryData2Map(myData2, joinCode = "ISO3", nameJoinColumn = "ISO3V10")
par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i")
mapParams <- mapCountryData(sPDF2, nameColumnToPlot="No.of.Documents", catMethod = "categorical", addLegend=FALSE)
do.call( addMapLegend, c(mapParams, legendWidth=0.5, legendMar = 2))

如果可以使用RSCript和rworldmap这样做,你可以编写代码或调整我允许我这样做的代码吗?


这是我希望能够做到的!

在哪里可以找到经度和纬度,因为这会更好。

我想要的输出是每个国家/地区在地图上显示的文件数量!

您是否可以在原始问题中编辑上面的文件和代码,告诉我该怎么做?

1 个答案:

答案 0 :(得分:1)

有可能吗?这是R。

require(fortunes)
fortune("Yoda")

您可能需要更准确地了解您希望这些数字的确切位置,因为合并会带来超过5个区域:

str(sPDF2@data[which(sPDF2@data$ISO3V10 =="GBR"),])
'data.frame':   1 obs. of  15 variables:
 $ FIPS        : Factor w/ 244 levels "","AC","AE","AF",..: 224
 $ ISO2        : Factor w/ 246 levels "AD","AE","AF",..: 76
 $ ISO3        : Factor w/ 246 levels "ABW","AFG","AGO",..: 79
 $ UN          : int 826
 $ NAME        : Factor w/ 246 levels "Afghanistan",..: 230
 $ AREA        : int 24193
 $ POP2005     : int 60244834
 $ REGION      : int 150
 $ SUBREGION   : int 154
 $ LON         : num -2.9
 $ LAT         : num 54.2
 $ ISO3V10     : Factor w/ 5 levels "CAN","CHN","GBR",..: 3
 $ Country     : Factor w/ 5 levels "Canada","China",..: 4
 $ No_Documents: int 38
 $ ISO3        : Factor w/ 5 levels "CAN","CHN","GBR",..: 3

那么为什么不为您想要放置这些数字的位置提供坐标,并编辑输入文件以反映该选择。