接 http://blog.163.com/digoal@126/blog/static/163877040201531524411938/
为大家介绍R语言提供的丰富的地图包功能,首先需要安装maps包,可以用来画出漂亮的世界地图,供我们做社交网络分析.
遗憾的是该包不包含中国地图包,如若需要绘制中国地图,以方面建议加载mapdata包,
另一方面,强烈建议谷歌贡献的ggmap包,
相关命令如下 :
世界地图
> library(maps)
警告信息:
程辑包‘maps’是用R版本3.1.3 来建造的
> map("world",fill=TRUE,col=rainbow(200),ylim=c(-60,90),mar=c(0,0,0,0))
中国地图
> library(mapdata)
警告信息:
程辑包‘mapdata’是用R版本3.1.3 来建造的
> map("china",col="red4",ylim=c(18,54),panel.first=grid())
最后以一个航空公司航线分布案例,首先导入外部数据, 然后构造航线,最终在图形中展示出来.
命令如下 :
> install.packages("geosphere")
> library("geosphere")
airports <- read.csv("http://datasets.flowingdata.com/tuts/maparcs/airports.csv", header=TRUE)
flights <- read.csv("http://datasets.flowingdata.com/tuts/maparcs/flights.csv", header=TRUE, as.is=TRUE)
map("world",col="#f2f2f2",fill=TRUE,bg="white",lwd=0.5)
fsub <- flights[flights$airline=="AA",]
for (j in 1:length(fsub$airline)) {
air1 <- airports[airports$iata == fsub[j,]$airport1,]
air2 <- airports[airports$iata == fsub[j,]$airport2,]
inter <- gcIntermediate(c(air1[1,]$long, air1[1,]$lat), c(air2[1,]$long, air2[1,]$lat), n=100, addStartEnd=TRUE)
lines(inter, col="black", lwd=0.8)
}
[参考]
1. http://blog.163.com/digoal@126/blog/static/163877040201531524411938/