• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

三、R语言可视化--ggplot2和REmap包绘制地图

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

绘制地图

1.ggplot2提供了一些工具,让使用maps包绘制的地图与其他ggplot2图形的结合变得十分方便。关于中国地图的绘制可以参考:http://cos.name/2009/07/drawing-china-map-using-r/

国家 maps地图数据名

法国

意大利

新西兰

美国(郡)

美国(州)

美国(边界)

全世界

france

italy

nz

country

state

usa

world

 

我们使用地图数据主要有两种原因:1.为空间数据添加参考轮廓线2.通过不同的区域填充颜色以构建等值线图。

添加地图边界可以通过borders()来完成。函数的前两个参数指定了要绘制的地图名map以及其中的具体区域region,其余的参数用于控制边界的外观。填充颜色的多边形使用的是fill。

1
2
3
4
library(maps)
data(us.cities)
> big_citi <- subset(us.cities,pop > 500000)  ##人口大于50万的城市
qplot(long,lat,data=big_citi) + borders("state",size=0.5)

  

1
2
> tx_city <- subset(us.cities,country.etc=="TX")
ggplot(tx_city,aes(long,lat)) + borders("county","texas",colour="grey70") + geom_point(colour = "black",alpha=0.5)

  德克萨斯州的城市区划:

使用map_data将地图数据转化为数据框,此数据框可以在之后通过merge() 操作与我们的数据相融合,最终绘制处等值线图。

1
2
3
4
5
6
7
8
9
> states <- map_data("state")
> arrests <- USArrests
names(arrests) <- tolower(names(arrests))
> arrests$region <- tolower(rownames(USArrests))
 
> choro <- merge(states,arrests,by="region")
#由于绘制多边形时涉及顺序问题,且merge破坏了原始排序,故将行重新排序
> choro <- choro[order(choro$order),]
qplot(long,lat,data=choro,group=group,fill=assault,geom="polygon")

  

#######################华丽的分割线############################

接下来简单介绍一下中国地图的绘制。

首先要成功安装好两个包:

1
2
install.packages("maps")
install.packages("mapdata")

  然后加载:

1
2
library(maps)
library(mapdata)

  加载成功后我们可以使用map方法绘制中国地图:

1
map("china")

  

以上的地图比较老了(重庆仍然在四川省内),获取比较新的,下载中国GIS数据(http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip),解压到我的文档中(默认的R工作空间),然后下载maptools包:install.packages("maptools"),加载到R的工作空间:library(maptools),然后绘制地图:

1
2
> x <- readShapePoly('bou2_4p.shp')
plot(x)

  

通过调节plot命令中的col(旧版为fg)参数来根据自己的需要对地图中的省份着以特定的颜色。

GIS数据包含925个多边形,col参数应该时一个长度为925的向量,第i个分量的取值就代表了地图中第i个多边形的颜色:

1
plot(x,col=gray(924:0/924))

  

在地图中只画出部分省份所代表的区域:

1
2
3
4
5
6
7
8
9
10
11
x=readShapePoly(

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言-分组统计发布时间:2022-07-18
下一篇:
R语言使用ARIMA模型预测股票收益发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap