楼主: genechip
1970 2

[程序分享] 90%不知道的知识点-空间数据处理及可视化—空间数据交互 [推广有奖]

  • 0关注
  • 6粉丝

本科生

11%

还不是VIP/贵宾

-

威望
0
论坛币
1921 个
通用积分
0.5550
学术水平
6 点
热心指数
7 点
信用等级
5 点
经验
6770 点
帖子
32
精华
0
在线时间
75 小时
注册时间
2008-4-3
最后登录
2017-8-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

空间数据专题|第五周:空间数据处理及可视化—空间数据交互

xxiao513


本期内容导读本期将为大家介绍两种R语言绘图交互的方法。

1.基本图形的交互
R语言的传统绘图方法和lattice绘图系统与图形的交互性,相对于专门用于数据交互的软件或专业的GIS工具而言显得十分有限。其主要的功能集中在用鼠标单击的形式显示对应位置信息。

底图显示有两个用于与图形设备(如显示器)交互的函数:
Locator返回在坐标系中单击的x和y的坐标位置;
Identify在一个指定的最大距离内绘制并返回离被单击位置最近的标签项(默认为行号)。
两个函数都等待用户输入:单击鼠标左键为开始输入,单击鼠标右键为结束输入,一个identify函数的示例如下:
library(sp)
par(mfrow=c(1,2))
#使用spplot包的plot函数绘制meuse河流污染监测数据
plot(meuse)
#使用identify函数来与图形交互,选择目标点
meuse.id <-identify(coordinates(meuse), col="red")

代码运行结果如下图左所示,若想人工绘制区域选择部分数据高亮显示,使用locator函数确定区域边界点,配合构造多边形来进行数据的筛选,显示结果如下图右所示:
#使用spplot包的plot函数绘制meuse河流污染监测数据
plot(meuse)
#使用locator函数绘制多边形边界点
region<-locator(type ="o", col="red")
#由边界点构造多边形
n <-length(region$x)
p <-Polygon(cbind(region$x, region$y)[c(1:n, 1), ],
hole=FALSE)
ps<- Polygons(list(p), ID ="region")
sps<- SpatialPolygons(list(ps))
#筛选出多边形内的数据进行高亮显示
plot(meuse[sps, ], pch =16, cex =0.5, add =TRUE, col="red")

在面状数据绘制的地图中,为了识别特定的面,可以使用locator选择需要选中的面,并用overlay函数叠加点和面要素,最终筛选出求交后的面要素内容。
library(maptools)
prj<- CRS("+proj=longlat+datum=NAD27")
#加载maptools包自带的sids面数据
nc_shp <-system.file("shapes/sids.shp", package ="maptools")[1]
nc<- readShapePoly(nc_shp, proj4string = prj)
#绘制地图
plot(nc)
#使用locator函数选中需要的多边形区域
pt<-locator(type ="p")
print(pt)
#将选择的点构成SpatialPoints对象
pt.sp =SpatialPoints(cbind(pt$x, pt$y), proj4string = prj)
#将面状地图与选择点求交,
#得到点所在的区域显示具体属性信息
over(pt.sp, nc)



在R中Trellis(lattice)绘图与基础绘图有着同样的交互功能,使用spplot选择点的方式如下:
#通过设置identify=T来激活spplot的交互模式
ids<- spplot(meuse,"zinc", identify=TRUE)


2. 使用外部可视化库的图形交互

结果以html网页的形式显示,在网页中可以调节色带范围显示对应区域内的数据,鼠标移动到省份会显示其GDP值。


扫描二维码  可以查看更多R语言相关内容  微信公众号:rchinanet

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:空间数据 数据处理 知识点 不知道 可视化 identify library 温故而知新 显示器 知识点

沙发
太极无极 在职认证  发表于 2015-3-30 21:51:52 |只看作者 |坛友微信交流群
楼主能否告知,利用R 软件做中国地图,要读那些书

使用道具

藤椅
太极无极 在职认证  发表于 2015-3-30 21:54:38 |只看作者 |坛友微信交流群
尤其是中国地图的显示,您是怎么做出来的

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 18:05