R做数据地图程序

R脚本:

setwd("D:/Users/Administrator/Documents/R")
library(sp)
library(maptools);
x=readShapePoly('bou2_4p.shp');#下文中会继续用到x这个变量,
getColor=function(mapdata,provname,provcol,othercol)
{
f=function(x,y) ifelse(x %in% y,which(y==x),0);
colIndex=sapply(mapdata$NAME,f,provname);
fg=c(othercol,provcol)[colIndex+1];
return(fg);
#其中mapdata是存放地图数据的变量,在上面的例子中就是x,
#provname是需要改变颜色的地区的名称,
#provcol是对应于provname的代表颜色的向量(名称和数字均可),
#othercol是其它地区的颜色。
}
provname=c("北京市","天津市","河北省","山西省","内蒙古自治区",
"辽宁省","吉林省","黑龙江省","上海市","江苏省",
"浙江省","安徽省","福建省","江西省","山东省",
"河南省","湖北省","湖南省","广东省",
"广西壮族自治区","海南省","重庆市","四川省","贵州省",
"云南省","西藏自治区","陕西省","甘肃省","青海省",
"宁夏回族自治区","新疆维吾尔自治区","台湾省",
"香港特别行政区");
pop=c(107,28,36,28,78,48,17,22,35,100,87,33,77,31,90,39,63,68,196,35,11,
47,108,13,18,0,39,0,2,2,0,0,0);
#provcol=rgb(red=(1-pop/max(pop))*255,green=255,blue=255);
provcol=grey((1-pop/max(pop)))
plot(x,col=getColor(x,provname,provcol,"white"),xlab="",ylab="");
dat=read.csv("city.csv")
library(maps)
library(mapdata)
points(dat$jd, dat$wd, pch = 19, col = 'red')
text(dat$jd, dat$wd, dat[, 4], cex = 0.9, col = 'blue', pos = c(2, 4, 4, 4, 3, 4, 2, 3, 4, 2, 4, 2, 2,
    4, 3, 2, 1, 3, 1, 1, 2, 3, 2, 2, 1, 2, 4, 3, 1, 2, 2, 4, 4, 2))
axis(1, lwd = 0); axis(2, lwd = 0); axis(3, lwd = 0); axis(4, lwd = 0)

运行结果:




参考链接:http://cos.name/2009/07/drawing-china-map-using-r/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值