绘制地图是数据可视化的重要内容之一。常用的软件包括Tableau,R,Excel等。这里我们要求R语言进行地图的绘制和基本的地图功能分析,使学生能够通过完成实验内容对R语言有一定的了解,会运用软件对数据进行简单的图像处理。
实验内容
1、应用maps绘制世界地图、美国地图、中国地图;
2、使用百度地图API查找长春大学,练习使用百度拾取坐标系统;
3、使用maptools和中国地图数据绘制中国地图;
4、使用ggplot绘制中国行政详图;
1、
(1)
> library(maps)
(2)
> map("world",fill=TRUE,col=rainbow(200),ylim=c(-60,90),mar=c(0,0,0,0))
> title("世界地图")
(3)
> map("state",fill=TRUE,col=rainbow(209),mar=c(0,0,2,0))
> title("美国地图")
2、
(1)
> library(devtools)
> library(baidumap)
(2)
> getCoordinate('长春大学',formatted=T)
longtitude latitude
125.32799 43.84018
> getCoordinate(c('长春大学东校区','长春大学西校区'),formatted=T)
longtitude latitude
长春大学东校区 125.3280 43.84018
长春大学西校区 125.3054 43.83761
(3)
(4)
> getCoordinate('长春',formatted=T)
> p=getBaiduMap(c(125.31364,43.89834))
> plot(p)
3、
(1)
> library(sp)
> library("maptools")
> china_map=readShapePoly("F:/数据可视化/R语言实验12-16/地图包/bou2_4p.shp")
(2)
> plot(china_map)
(3)
> library(ggplot2)
> mymap=ggplot(data=fortify(china_map))+geom_polygon(aes(x=long,y=lat,group=id),colour="black",fill=NA)+theme_grey()
> print(mymap+coord_map())
4、
(1)
> x=china_map@data
> head(x)
(2)
> xs=data.frame(x,id=seq(0:924)-1)
> china_mapl<-fortify(china_map)
> library(plyr)
> china_map_data=join(china_mapl,xs,type="full")
> head(china_map_data[china_map_data$NAME=="吉林省",])
> mymap=ggplot(china_map_data,aes(x=long,y=lat,group=group,fill=NAME))
> mymap+geom_polygon()+geom_path(colour="grey40")+
scale_fill_manual(values=colours(),guide=FALSE)+
coord_map("polyconic")+
theme(panel.grid=element_blank(),panel.background=element_blank(),axis.text=element_blank(),axis.ticks=element_blank(),axic.title=element_blank(),legend.position=c(0.2,0.3))
(2)
> jilin<-subset(china_map_data,NAME=="吉林省")
> ggplot(jilin,aes(x=long,y=lat,group=group,fill=NAME))+
geom_polygon(fill="beige")+
geom_path(colour="grey40")+
ggtitle("中华人民共和国吉林省")+
geom_point(x=125,y=44)+
annotate("text",x=125,y=44,label="长春市")
5、
> pop<-
c(7355291,3963604,20813492,10654162,8470472,15334912,9162183,13192935,8893483,25635291,20060115,19322432,11971873,11847841,30794664,26404973,17253385,19029894,32222752,13467663,2451819,10272559,26383458,10745630,12695396,689521,11084516,7113833,1586635,1945064,6902850,23193638,7026400)
> NAME<-c("北京市","天津市","河北省","山西省","内蒙古自治区","辽宁省","吉林省","黑龙江省","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","广西壮族自治区","海南省","重庆市","四川省","贵州省","云南省","西藏自治区","陕西省","甘肃省","青海省","宁夏回族自治区","新疆维吾尔自治区","台湾省","香港特别行政区")
> pop<-data.frame(NAME,pop)
> china_pop<-join(china_map_data,pop,type="full")
> mymap=ggplot(china_pop,aes(x=long,y=lat,group=group,fill=pop))
> mymap+geom_polygon()+geom_path(colour="grey40")+scale_fill_gradient(low='blue',high='red')