用PYTHON绘制中国地图VS用R绘制中国地图

由于课题的需要,需要根据各省,市的指标数据在地图上进行差异颜色标记,以实现更好的可视化表达。

本人对R较为熟悉,遂打算先用R实现需求。

计算机环境:MacBook Pro (Retina, 13-inch, Early 2015)

软件环境:RStudio Version 1.1.414 – © 2009-2018 RStudio, Inc.

install.packages("maps")
install.packages("mapdata")
library(maps)
library(mapdata)
map("china")---绘制中国地图

其中map()函数还可以加上很多参数,在这里就不一一详述,具体的用法只需问号之。然而仔细看一看这张地图你会发现重庆市和四川省仍然是浑然一体,可见该地图的数据应该是有些年头了。下面通过以下方法解决这个问题,绘制完美的中国地图(也不完美,缺少澳门特别行政区)

install.packages("sp")
install.packages("maptools")
library(sp)
library(maptools)
x<-readShapePoly('/Users/bi-wsc/Desktop/doing/china/bou2_4p.shp')

这里下载中国地图的 GIS 数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp 和 bou2_4p.shx),将这三个文件解压到同一个目录下,然后安装maptools包,运行如下程序:

plot(x)

自此,已经绘制出了完整的中国地图;但是在实际使用的过程中,我们往往会根据自己的需要对地图中的某些省份着以特定的颜色,这时就可以通过调节plot命令中的col参数来予以实现。然而为了清楚地说明这部分的内容,我需要插播一段 R 绘制地图的原理。

getColor = function(mapdata, provname, provcol, othercol){
	f = function(x, y) ifelse(x %in% y, which(y == x), 0);
	colIndex = sapply(iconv(x@data$NAME, from="CP936",to="UTF-8"),f, provname);
	col = c(othercol, provcol)[colIndex + 1];
	return(col);
}

mydata<-read.csv("/Users/bi-wsc/Desktop/province.csv",header = T)
provname<-mydata[,c(1)]
pop<-mydata[,c(2)]
provcol <-rgb(red = 1 - pop/max(pop)/2, green = 1-pop/max(pop)/2, blue = 0)
plot(x,col = getColor(x, provname, provcol, "white"), xlab = "", ylab = "")

 

翻了无数文档后,终于是将第一阶段的图形绘制出来了。然而,第二阶段想实现动态交互式绘图,却卡在某个细节上动不了(关键是文档太少了,也终于明白一定要拿一门学习人数最多的语言进行入门,比如python是何等的重要!)

计算机环境:window10系统,内存16G

软件环境:Anaconda,用的数据分析专属Jupyter notebook

我是从python,到pythoncharm,感觉pycharm适合做大型项目和网络爬虫,很多数据科学的包需要单独下载,并且下载时难免遇到报错(解决起来闹心,关键是拉低学习一门语言的热情!)后来就找到了An

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值