我要一张关爱地球 保护环境画的方法六r中级用的

初三物理知识点_百度知道小学六年级下册科学复习资料和试卷_百度知道[转载]用R软件绘制中国分省市地图&ZZ
RPosted on
http://cos.name/2009/07/drawing-china-map-using-r/
[统计之都]
【注】新版本的maptools包对很多函数进行了修改,对于修改的内容,文章中用红色的文字进行了说明。
鉴于最近有不少人在讨论用R软件绘制地图的问题,我也就跟着凑了凑热闹,对相应的方法学习了一番。下面的这篇文章是一个初步的介绍,还有很多内容仍在学习和探索中,如果大家有什么意见或建议,我将根据自己学习的情况对文章进行进一步的补充。
在R中绘制地图其实是十分方便的,最直接的办法大概就是安装maps和mapdata这两个包,然后输入下面的命令:
library(maps)
library(mapdata)
map("china")
其中map()函数还可以加上很多参数,在这里就不一一详述,具体的用法只需问号之。然而仔细看一看这张地图你会发现重庆市和四川省仍然是浑然一体,可见该地图的数据应该是有些年头了。
幸运的是,通过我们已经可以大体知道该如何操作了,下面就为大家介绍一下具体的步骤。
首先,从下载中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下,并在R中设好相应的工作空间,然后安装maptools包,运行如下程序:
library(maptools);
x=read.shape('bou2_4p.shp');#下文中会继续用到x这个变量,
#如果你用的是其它的名称,
#请在下文的程序中也进行相应的改动。
【修改】新版本的maptools包不再提供read.shape()函数,请用readShapePoly()代替。
这时一张完整的中国地图就已经画好了。但是在实际使用的过程中,我们往往会根据自己的需要对地图中的某些省份着以特定的颜色,这时就可以通过调节plot命令中的fg参数来予以实现。然而为了清楚地说明这部分的内容,我需要插播一段R绘制地图的原理。
======================传说中的分割线=====================
在绘制地图时,每一个省市自治区或者岛屿都是用一个多边形来表示的。之前的GIS数据,其实就是提供了每一个行政区其多边形逐点的坐标,然后R软件通过顺次连接这些坐标,就绘制出了一个多边形区域。在上面的数据中,一共包含了925个多边形的信息,之所以有这么多是因为一些省份有很多小的附属岛屿。在这925个多边形中,每一个都对应一个唯一的ID,编号分别从1到925。
======================传说中的分割线=====================
回到刚才的话题,plot命令中的fg参数在本例中应该是一个长度为925的向量,其第i个分量的取值就代表了地图中第i个多边形的颜色。一个简单的尝试是运行下面这个命令看看效果:
plot(x,fg=gray(924:0/924));
【修改】新版本的maptools包的绘图参数也有所改变,请将fg换成col。
于是自然就产生了一个问题:如何获取某一个特定地区的ID,进而设置我们想要的颜色?事实上,在变量x中,就已经存储了我们想要的信息。在R中输入“x[[2]]”或“x$att.data”,会得到一个925行7列的数据框,这其实是bou2_4p.dbf这个文件中存储的信息,之前的read.shape()函数虽然读取的是bou2_4p.shp文件,但在默认情况下会把dbf文件的信息也放到变量之中。对于这个数据框,其行名就是每一个区域的ID编号,第一列和第二列分别是面积和周长,最后一列是该区域所属的行政区名,其它的列应该也是一些编号性质的变量。于是,通过查找相应的行政区对应的行名,就可以对fg参数进行赋值了。下面是我编的一个函数,用来生成所需的fg向量:
getColor=function(mapdata,provname,provcol,othercol)
f=function(x,y) ifelse(x %in% y,which(y==x),0);
colIndex=sapply(mapdata$att.data$NAME,f,provname);
fg=c(othercol,provcol)[colIndex+1];
return(fg);
【修改】地图数据的组织形式有所变化,上面函数中的mapdata$att.data$NAME需要替换为mapdata@data$NAME。
其中mapdata是存放地图数据的变量,在上面的例子中就是x,provname是需要改变颜色的地区的名称,provcol是对应于provname的代表颜色的向量(名称和数字均可),othercol是其它地区的颜色。举例如下:
provname=c("北京市","天津市","上海市","重庆市");
provcol=c("red","green","yellow","purple");
plot(x,fg=getColor(x,provname,provcol,"white"));
注意provname一定要写地区的全称,写法可以参照下面这条命令生成的向量:
as.character(na.omit(unique(x$att.data$NAME)));
由此生成的向量有33个元素,少了澳门特别行政区,这是这个数据中的一块瑕疵。在x$att.data的第899行有一个NA,不知道它代表的是否就是澳门。
利用类似的方法就可以根据自己的需要对不同的区域进行着色,下面再举一例。从国家统计局获取2007年我国各地区的人口数据,然后根据人口的多少对各省份进行着色。程序如下:
provname=c("北京市","天津市","河北省","山西省","内蒙古自治区",
"辽宁省","吉林省","黑龙江省","上海市","江苏省",
"浙江省","安徽省","福建省","江西省","山东省",
"河南省","湖北省","湖南省","广东省",
"广西壮族自治区","海南省","重庆市","四川省","贵州省",
"云南省","西藏自治区","陕西省","甘肃省","青海省",
"宁夏回族自治区","新疆维吾尔自治区","台湾省",
"香港特别行政区");
pop=c(43,98,58,7625,
6,14,284,,
552,610,3);
provcol=rgb(red=1-pop/max(pop)/2,green=1-pop/max(pop)/2,blue=0);
plot(x,fg=getColor(x,provname,provcol,"white"),xlab="",ylab="");
其中颜色越深的地方代表人口数越多,反之为人口数越少。
此外,在绘制地图的过程中,还有一个比较有用的参数是recs,它是一个由多边形ID组成的向量,表示在地图中只画出这些ID所代表的区域。利用这个参数,就可以画出某一部分的地图,例如下面的例子是我国中部六省的地图:
getID=function(mapdata,provname)
index=mapdata$att.data$NAME %in%
ids=rownames(mapdata$att.data[index,]);
return(as.numeric(ids));
midchina=c("河南省","山西省","湖北省","安徽省","湖南省","江西省");
plot(x,recs=getID(x,midchina),fg="green",ol="white",xlab="",
上面的getID()是我编写的一个功能与getColor()类似的函数,用来返回指定省份的ID。
【修改】新版本的maptools包的绘图函数已经取消了recs这个参数,现在要实现这个功能,可以在颜色上把不需要的省份变成白色,其中填充色用col参数,边界颜色用border参数。例如上面的例子可以用下面的函数来实现:
plot(x, col = getColor(x, midchina, rep("green", 6),
"white"), border = "white", xlab = "", ylab = "")
最后要说的是,在画出的图上仍然可以用points()函数和text()函数加上点和文字,而maptools包中还提供了一个pointLabel()函数,用来解决文本标签的重叠问题。这部分内容请参阅博文:,以及。
从以上的内容来看,本文所述的都是一些最基本的绘图方法,还没有对地理信息数据进行更进一步的分析。如果有机会的话,这一主题的下一篇文章将为大家介绍地图数据的组成结构,并说明如何将不同格式的地理数据整合起来,例如如何在上面的地图上绘制出我国的铁路、水系分布等内容。
This entry was posted in , ,
and tagged ,
by . Bookmark the .
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
About 邱怡轩
中国人民大学统计学院2010级硕士研究生
121 thoughts on “用R软件绘制中国分省市地图”
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/beb15ba775befc9e476e36c0?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
很好很强大,以前用maptools,发现里面的数据很支离破碎,无法画分省图。
这下可好了。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/344cc2de04baab0ed07aba0?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />余西亚 on
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/e9c3abf2d4e?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />kimboo on
顶了,这篇文对空间统计分析很有用哈~
如果可以对地图上的距离长度信息进行提取的话那么就更完美了!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
假定地球为半径为R的球体,只要知道地图上两点的坐标(经纬度),就可以算出两点之间的大圆弧长,也就是最短距离。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/6b96a772d9ef16d4cb49fe35c8f5da10?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />zwdbordeaux on
太好了!我太喜欢了!!!!
以前要做个报告想把中国地图放进去,然后把不同的省份运用不同的颜色表示出来简直就是一件非常让人头疼得事情。所以就扫描然后自己ps处理。可是遇到需要外文标注的时候就异常的痛苦!!所以这次总算有了解决的方案!
多谢多谢!!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/6b96a772d9ef16d4cb49fe35c8f5da10?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />zwdbordeaux on
对不起,刚才一激动,感叹号居然超过了3个,犯了谢老大的版规。自我反省一下。
“再激动感叹号也不要超过三个!!”
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/62b5e49d0dc784dd8e51727?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />jah_et on
呵呵,这个不绝对
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/48457dcb2e8c08a95a9a?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />hunter on
建议补充上澳门的数据,否则不好在学术或正式场合引用。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/b6abfd1b9b9d63f6a70ce30?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />tianping on
很好,很和谐,很强大!!!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/c6fbccb4b87d3a8c2aaca0?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />yzhizhi on
不错不错,以前我做的时候用了很麻烦的笨方法,现在好了,语句简化但用途更强大了:)
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/324fae90d6ffec62f1e2ba?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Bo on
导入GIS数据后,发现省名在R里显示是乱码,请问应该如何解决? 谢谢!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/6b96a772d9ef16d4cb49fe35c8f5da10?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />zwdbordeaux on
我也遇到了与bo一样的问题。应该是语言设置的问题,当我读入x的时候发现:
Shapefile type: Polygon, (5), # of Shapes: 925
Warning message:
use readShapeSpatial:
objects other than Spatial objects defined in the sp package are
deprecated
之后也就没有办法对每个省的颜色进行改变!
正在想法解决
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
R是中文的还是英文的?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/5af435fd54bfc41c16dd1d1f9eb8bea1?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />DavidLung on
没有加载到GIS数据所在的工作空间
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/59682de36cfb6fba3f12?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />hgzhang on
我试着运行程序,提示
& x&-read.shape('bou2_4p.shp');
错误: 没有"read.shape"这个函数
求解答,先谢了
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
新版本的maptools包把很多原来的函数都改掉了,如果你要用的话可能得重新读一下它的帮助。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/59682de36cfb6fba3f12?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />hgzhang on
谢谢,修改后就没问题了
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/74ae0df5f0a8c621706c?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
我有一些关于R语言的问题,可以请教您吗?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
发到论坛里大家一起讨论吧,呵呵。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ebc94e8f6bca9a86cebe312a?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
用readShapePoly()函数。如x =
readShapePoly('bou2_4p.shp')
邱怡轩得更新正文了。我刚看了一下,新的函数读进来的数据的子元素直接就是NAME那一级的,原来的x$att.data$NAME就是现在的x$NAME,比如plot(x,
rainbow(length(levels(x$NAME)))[as.integer(x$NAME)])
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/67ff17c8c7cbaf4eeeec334f?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />xiaoz on
哈哈。太感谢了。终于成功了。我用的是2.10.1
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/d77e4cf0b869cde6030bce26feb0a836?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />池振合 on
plot(x,fg=gray(924:0/924))
错误于plot.window(xlim = xlim, ylim = ylim, asp = asp, …) :
图形参数”fg”的长度不对
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ebc94e8f6bca9a86cebe312a?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
参见你头上我的回复中的例子,这个包以及sp包都更新了,现在应该用col参数。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/67ff17c8c7cbaf4eeeec334f?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />xiaoz on
这个是怎么回事?
& getID=function(mapdata,provname)
+ index=mapdataatt.data<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
+ ids=rownames(mapdata$att.data[index,]);
+ return(as.numeric(ids));
& midchina=c(“河南省”,”山西省”,”湖北省”,”安徽省”,”湖南省”,”江西省”);
plot(x,recs=getID(x,midchina),col=”green”,ol=”white”,xlab=”",
+ ylab=”");
警告多于50个(用warnings()来显示第一个到第五十个)
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
新版本的maptools包改动很大,我已经把文章更新了一下,参见文中的红色部分。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/67ff17c8c7cbaf4eeeec334f?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />xiaoz on
呵呵 getColor 好像找不到了
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
什么意思?getColor()不是写在前面吗?只是需要把里面的mapdata$att.data$NAME改成mapdata@data$NAME。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/67ff17c8c7cbaf4eeeec334f?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />xiaoz on
恩。找到了 。谢谢
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/d28aced4dad?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />ellie on
getColor()按照要求修改了,但是还是显示“graphical parameter “fg” has the wrong
length”。是什么原因?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/07f31ddaa217f4a?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />myli on
有两个问题期待大家帮助:
1、原文“首先,从这里下载中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下,并在R中设好相应的工作空间,然后安装maptools包,运行如下程序:”
请问“工作空间”指的是什么?如何设置?
2、这个地图能精细到地级市级别吗?是不是在“mapdata”包里可以看到都有什么样的数据?可我找不到包的路径。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
1、用R软件时可能经常要读取一些外部文件,引用这些文件有两种方式,一种是绝对路径,比如“C:/AAA.txt”,另一种就是把工作空间设在C:/,然后只要用相对路径“AAA.txt”就行了。说白了就是少写了一大串路径名。R中的函数是setwd()。
2、地图的精确度与数据有关,mapdata里自带了一些,如果要更精确的,可以到网上去搜GIS数据。要读取mapdata里的数据可以这样做:
cnmapdata=map("china"),然后cnmapdata$x和cnmapdata$y就分别是经度和维度了。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/07f31ddaa217f4a?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />myli on
谢谢,弄明白了。
那个工作空间,原来R for beginners里就有提到。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/a3202814dee7c0552957?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />wurui on
Very good, very strong!
跟着老师给的链接找过来的,非常有帮助,谢谢楼主
ps:“如果有机会的话,这一主题的下一篇文章将为大家介绍地图数据的组成结构,并说明如何将不同格式的地理数据整合起来,例如如何在上面的地图上绘制出我国的铁路、水系分布等内容。”
这部分有帖子说明吗?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
是我偷懒还没写……
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/beb15ba775befc9e476e36c0?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
坐等新作~~
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ad1c8efd2c0301?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />weizhangjin on
你好,你讲的这个方法很有用,但是能否绘一个省的带地市边界的图呢?
比如用R绘广东省带地市边界的图?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ebc94e8f6bca9a86cebe312a?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
你需要下载地市边界数据,我不知道国家基础地理信息中心是否提供这种细类数据下载,你自己可以去查看一下。画图的方法都是一样的,读入shp数据,然后plot()。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ad1c8efd2c0301?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />weizhangjin on
能不能指点一下,谢谢
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ad1c8efd2c0301?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />weizhangjin on
你好,我在国家基础地理信息中心上没找到这种数据,哪里有呢?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
这个可以吗?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ad1c8efd2c0301?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />weizhangjin on
这个数据估计没有用,你绘了一个中国带省界图很漂亮,能否也绘一个省图带市县界的图呢
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/924bafd38cfacbc9ed3140?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />ypchen on
要看有没有数据吧
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ad1c8efd2c0301?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />weizhangjin on
哦,你好!怎么把省的名称自动写到地图里呢?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/cef2dbe6a196c00db6e3f1f1?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />lywzh on
我想问问怎么确定广东省各市的边界,太需要了,谢谢
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/cef2dbe6a196c00db6e3f1f1?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />lywzh on
另外,数据包中(bou2_4l.dbf、bou2_4l.shp和bou2_4l.shx),的bout2_4l.shp为什么读不了呢?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/15889ffa4d91e57df00becfff2f62ebb?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />liujs606 on
请问maptools中的Map2poly改成什么了?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
应该是被删了,但可以从地图信息中提取,你试一下下面的代码,函数会返回一个列表,其中每一个元素是一个矩阵,第一列是多边形横坐标,第二列是多边形纵坐标。
myMap2poly=function(mapdata)
lapply(x@polygons,function(x) x@Polygons[[1]]@coords);
mapPolygon=myMap2poly(x);
hlj.x=mapPolygon[[1]][,1];
hlj.y=mapPolygon[[1]][,2];
plot(1,xlim=range(hlj.x),ylim=range(hlj.y),type="n");
polygon(hlj.x,hlj.y);
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/9b60ec5bb808c333bf990?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Jushan Liu on
我读进去SHP数据后,运行
myMap2poly=function(mapdata)
lapply(x@polygons,function(x) x@Polygons[[1]]@coords);
mapPolygon=myMap2poly(x)
出现错误提示Error in is.vector(X) : object ‘x’ not found
是什么问题?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
我犯糊涂了,应该把那个函数中的x改成mapdata,正确的函数应该是
myMap2poly=function(mapdata)
lapply(mapdata@polygons,function(x) x@Polygons[[1]]@coords);
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/9b60ec5bb808c333bf990?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Jushan Liu on
多谢,我当时可能头脑不清楚,哈哈
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/15889ffa4d91e57df00becfff2f62ebb?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />liujs606 on
在R中输入“x[[2]]”得到包含925个元素的数组
[1] 68.489 129.933 84.905 41.186 38.379 76.781 44.874 8.498
[10] 0.047 0.096 0.114 0.061 0.052 0.041 0.066 0.056 0.064
用“xatt.data”得到NULL我用attributes(x)发现里边有乱码<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
AREA PERIMETER BOU2_4M_ BOU2_4M_ID ADCODE93 ADCODE99 NAME
0 54.447 68.489 2 23 000 &&U&A&&frac12;&&E&
1 129.113 129.933 3 15 000 &A&U&A&E&sup1;&A&&O&O&I&C&
这些问题怎么解决?请指教
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
maptools包进行改版后,数据结构也发生了变化,原来的x[[2]]或x$att.data相当于现在的x@data。乱码问题应该是编码造成的,在我这里没问题,你再试试看。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/15889ffa4d91e57df00becfff2f62ebb?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />liujs606 on
早晨睁眼就来看您的答复,非常感谢
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
你是在加拿大上学吗?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/15889ffa4d91e57df00becfff2f62ebb?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />liujs606 on
我在加拿大放学一年,有个项目是关于加拿大北方森林物种特征时空变异的项目,需要把一些物种在加拿大地图上标记出来,并且预测30,60年后的分布情况,您在什么单位,能否单独联系您,我邮箱是
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/9b60ec5bb808c333bf990?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />liujs606 on
您好,现在我有两个问题,假如把各省份用不同颜色区分后,想加个图例,把每个颜色代表的身份用图例表示出来,怎么加?
第二个问题,我如果有中国分省市地图的SHP数据,还有包括经纬度的样品数据,我可以把样品的分布在该地图上表示出来,根据这两个数据,能否把我样品数据中的各个记录按照省份归类?进而可以对每个省份的数据分布进行分析。
不知道有没有表达明白我的问题,想上传两个图片,但是不知道这里怎么上传,期待您的答复
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
图例可以用legend()函数;第二个问题是不是相当于给定一个经纬度,然后判断它在哪个省?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/1d588caaab4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />priss111 on
只用中国某省的地图,
绘制某事件(可以以人口数为例)在该省各个地市的频数分布,
这个的code该如何修改?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
基本上差不多,就是地图的数据,还有城市名称等地方需要更新。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/1d588caaab4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />priss111 on
请问我如何获取该省的地图数据?
我不知道去哪里能够下载到数据.
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
这里可能有你需要的:。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/1d588caaab4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />priss111 on
在gadm中下载了china的shapefile压缩文件,
解压后把后缀为.shp/.dbf及相应同名的SHX文件放入getwd()中,
运行下面这段code,
提示: 错误于colIndex + 1 : 二进列运算符中有非数值参数.
是因为省名是汉字导致该错误?
还是因为其他原因?
请高手帮忙查看一下,
又需要绘制一幅某省的各地市某事件频数分布地图.
library(maps)
library(mapdata)
map(“china”)
library(maptools)
x=readShapePoly(“CHN_adm3.shp”)
plot(x,col=gray(924:0/924))
#####全国地图中突出显示湖北
getColor=function(mapdata,provname,provcol,othercol)
f=function(x,y) ifelse(x %in% y, which(y==x),0)
colIndex=sapply(mapdata@data$NAME,f,provname)
col=c(othercol,provcol)[colIndex+1]
return(col)
provname=c(“湖北省”)
provcol=c(“red”)
plot(x,col=getColor(x,provname,provcol,”white”))
错误于colIndex + 1 : 二进列运算符中有非数值参数
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
这个数据是包含了城市的,直接用原来的代码肯定不行。如果时间允许的话我想重新整理一篇地图绘制的文章,只是可能得等一段时间了。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/1d588caaab4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />priss111 on
现在关键是不知道有城市的shapefile的3个文件转化成我需要的分布地图的思路,
所以不知从何下手.
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ebc94e8f6bca9a86cebe312a?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
这个gadm.org网站太牛了,谢谢!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
最强悍的一点是它直接提供RData格式的数据,在R里load()一下就进去了。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/9b60ec5bb808c333bf990?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />liujs606 on
第二个问题是,样品数据中有经纬度,关键是怎么能从GIS数据中分离出每个省的经纬度范围,您有没有好的建议?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/9b60ec5bb808c333bf990?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Jushan Liu on
原来maptools中的Map2poly现在改成什么了?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/9b60ec5bb808c333bf990?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Jushan Liu on
不好意思,以前问过这个问题,不用回答了
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/211ac065e8773feeebc74ac77f5acd87?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Long Qin on
用SAS试一下:
data china2;
length IDNAME 18;inputIDIDNAME<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
16 广西壮族自治区
8 黑龙江省
34 香港特别行政区
35 澳门特别行政区
20 内蒙古自治区
21 宁夏回族自治区
13 新疆维吾尔自治区
14 西藏自治区
(maps.china,china2,labelout,idname,id,font=simhei,color=crimson,size=2,hsys=3);
proc gmap map=maps.china data=china2
choro idname / nolegend levels=1 anno=
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/35cce3c0fbe24c2ef1b921bd62872e3e?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />my9690 on
不好意思,由于maptools程序包更改的太多,而且上文用到的GIS数据也有更新,所以,现在看您的博文有很多地方对应不上。
您能按现在的GIS数据和maptools程序包重新更新一下内容吗?
正在写论文,很急需这部分内容,查找了很多书,书上没有这部分。看您的文章有很大的提示,很感谢您。麻烦您按照现在的内容更新一下代码好吗,谢谢。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
呃,关键的地方我已经用红色的文字重新修正了,不知道还有哪些地方需要更新?最好是能列出一个清单,我重新更新一下。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/35cce3c0fbe24c2ef1b921bd62872e3e?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />my9690 on
您好,非常不好意思麻烦您。
由于maptools和Gis文件的更新都比较大,您可以重新更新一下博文吗?
很着急学这部分内容,谢谢您了。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/6b96a772d9ef16d4cb49fe35c8f5da10?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />zwdbordeaux on
研究了一下数据结构:
更新之后的maptools读入bou2_4p.shp之后,形成一个SpatialPolygonsDataFrame对象
(class(x)).这个对象有”data”,”polygons” ,
“plotOrder”,”bbox”,”proj4string”五个slot组成(slotNames(x)),如果想提取每个slot的数据可以通过x@slotname,
slot(x,”slotname”)获得。
每个slot中包含不同的内容
data: 是一个data.frame, 包含925行,7列数据(”AREA” ,”PERIMETER” “BOU2_4M_”,
“BOU2_4M_ID”, “ADCODE93&P, “ADCODE99&P ,
“NAME”),而最重要的各个省市的名称就在NAME这一列中。
plotOrder,是一个长度925的vector
bbox是一个2&2的矩阵,包含x,y值的最大和最小值
proj4string 在该数据情况下没有值(NA)
polygons: 它的情况比较复杂,本身是一个list, 长度925,
其中每个元素又为一个polygons对象,又有几层结构:
:Formalclass‘Polygons<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />&<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />[package"sp"]with5slots....@Polygons:Listof1......<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
.. .. .. .. ..@ labpt : num [1:2] 114.3 22.2
.. .. .. .. ..@ area : num 8.6e-06
.. .. .. .. ..@ hole : logi FALSE
.. .. .. .. ..@ ringDir: int 1
.. .. .. .. ..@ coords : num [1:9, 1:2] 114 114 114 114 114 …
.. ..@ plotOrder: int 1
.. ..@ labpt : num [1:2] 114.3 22.2
.. ..@ ID : chr “924&P
.. ..@ area : num 8.6e-06
具体内容还没有彻底弄明白!
现在这个数据的主要局限是没有办法在英文系统下使用,或者没有办法以各个省的拼音名称进行索引和赋值。所以我想 把NAME
部分的中文名称改为拼音(这个不难实现),之后不知道有谁知道如何把修改后的数据输出保存到一个新的shp文件中?或者把这个修改后的SpatialPolygonsDataFrame对象直接保存为data,
然后就可以在英文系统上操作了!
请多帮忙!
ps:留言时候的那个认证太难了,失败了几次才成!!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
读写shapefile应该可以借助一些第三方的工具,我大概搜了一下,似乎有很多OpenGIS什么的开源软件,应该可以做到吧。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/6b96a772d9ef16d4cb49fe35c8f5da10?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />zwdbordeaux on
这个问题已经通过maptools包中的
writePolyShape()搞定!
此外,对于画某些特定省份的问题可以如下解决:
plot(y[y$NAME%in%provname,],col=”green”,border=”black”)
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ff3e13aed80dbc?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
请问用R能不能画出按四位数邮政编码分区的中国地图
每一地区按照资料而有不同颜色
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f7ceaeeae07ded5?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />孟长河 on
将这三个文件解压到同一个目录下?可以直接把这三个文件放在桌面上的文件夹里吗?还是要放在特定程序包里面?
我用x=readShapePoly(‘bou2_4p.shp’),然后出来的结果是:Error in
getinfo.shape(filen) : Error opening SHP file,求解答,先谢了
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
你应该是没有把R的工作目录设为文件所在的目录,见getwd()命令。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f7ceaeeae07ded5?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />孟长河 on
谢谢,果然有用了~
我现在是把china-province-border-data.tar这个文件夹里的东西拷到R的bin(即getwd()所在文件)文件里了,是这样的意思吗?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />邱怡轩 on
我之前其实说得还不准确,getwd()是获取工作目录,事实上R是可以自己设定工作目录的,相应的命令是setwd(),里面加上三个文件所在的目录就行了,比如setwd("D:\work"),表达反斜杠的时候要写两个。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/aca22ea0fb104902bce657?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />sociology on
有没有人知道某个省的各个区,甚至更小地理单位的GIS地图那里找得到?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/b4ade9b6c738c92dddcd4df09e39b03b?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
用SAS吧,轻松绘制。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/bde74878f1dce1dda6199d63ecc5684b?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />zimu0124 on
请教老师:
& provname=c("北京市","天津市")
& provcol=c("red","green")
& plot(x,col=getColor(x,provname,provcol,"white"))
但是提示错误: 类别为’closure’的对象不可以取子集
为什么呢?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/ebc94e8f6bca9a86cebe312a?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
把你的str(x)和traceback()打印出来看看。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f6bd56adc?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />joey on
最大的问题是x@data结果的925行和33行name都完全乱码,可能是R识别不了中文所致? 用的MAC版本.谢谢!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/d9a005f17a11cb1cc2dcbc?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />huangziwei on
对SpatialPolygonsDataFrame这个东西搞不懂。希望有更多参考资料。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/e6dcc0206?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />alpha-beta on
再激动感叹号也不能超过三个!:)呵呵。。。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f7ceaeeae07ded5?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />孟长河 on
getColor这个函数是不是也不行了?
我试了着色不上了……
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/5a24b95a0?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />路人甲 on
getColor是板主自寫的 煩請詳讀點好嗎
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/57ea82fe4cec258d270bc?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />XAVIER on
需要做些修改
colIndex=sapply(mapdataatt.data<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
colIndex=sapply(mapdata$NAME,f,provname);
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/afbcbe5eafd95?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Lisa on
我们用GIS做,但是美中不足,就是总是画不出美丽的画。这是天赋问题么
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/d2ac716a13f7?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
以前曾经画过这类图,没有用上述统计包,具体思路是这样的:
(1)准备要画的底图,用别的计算机语言编程(或许R语言也有类似的包吧),提取出需要的底图区域的像素值,并保存到数据库中;
(2)在R中,按照提取的底图的比例建立绘图区(如果比例不一致,可能会变形),读取数据库中保存的像素值并绘制出来;
(3)在底图上绘制需要的图形。
这样不仅可以画分省的,还可以画一个市的、一个县的。。。随你怎么画。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/baabc35acbb?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />张无忌 on
我想问一下地图绘制出来之后希望添加一个colorbar用以表示不同的数值,如何添加?谢谢!
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/cfc35bbaa3239a8efe0af5?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />吕小忠 on
请问能不能在部分省份上标注该省的环境信息如:海拔、年平均气温、年均降水量、年平均光照强度、水质溶氧量、PH值、平均水温、河床比降、水流速、矿化度、硬度等信息,我要做一个物种在各省的分布情况及该省的环境参数,该怎么实现,谢谢
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/fea80d2bd0b?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" /> on
非常感谢这篇文章!如果数据更多,比如在一个excel表格里,如何把这个excel和R的地图功能联系在一起,划出这种类似你文章里人口的density
图呢?谢了
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/b11bcc00be714a30fe3d1f4bc80acc2a?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />sharp on
这个软件可以自己画一个局部的地图吗(比如一个县)?可以自己添加城市吗?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/34305adee3667dbc991b0?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />qing on
对于我这种似懂非懂的人来说,写得太详细了。
太好了,非常感谢。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/a1e8db8bfe8?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
i was going to use it to get Australian map, somehow there is no
maptools in my latest version R. can anyone please offer me some
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
1. Do you have the shapefile(*.shp) of Australian map?
2. Have you installed maptools package in R? Try
install.packages("maptools")?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/a1e8db8bfe8?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
hi, 邱怡轩,
Yes, i have, i have successfully loaded shx file of Australian
& getColor=function(mapdata,provname,provcol,othercol)
f=function(x,y) ifelse(x %in% y,which(y==x),0);
colIndex=sapply(mapdata$att.data$NAME,f,provname);
col=c(othercol,provcol)[colIndex+1];
return(col);
& provname=c("Canberra")
& provcol=c("red")
& plot(ozDATA,col=getColor(ozDATA,provname,provcol,"White"))
Error in colIndex + 1 : non-numeric argument to binary operator
see the Error msg above, why is that?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
As I mentioned in the article, some functions have been changed
with the new version of maptools package, and your code should be
modified as
& getColor=function(mapdata,provname,provcol,othercol)
f=function(x,y) ifelse(x %in% y,which(y==x),0);
colIndex=sapply(mapdata@data$NAME,f,provname);
col=c(othercol,provcol)[colIndex+1];
return(col);
& provname=c("Canberra")
& provcol=c("red")
& plot(ozDATA,col=getColor(ozDATA,provname,provcol,"White"))
Hope this works for you.
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/a1e8db8bfe8?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
hi, 邱怡轩,
after ran second slot, below is the error msg i have got.
Error: unexpected ‘}’ in:
” + return(col);
Sorry for being a pain.
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
Seems like you copied the plus sign into R also. Remove “+” in
the beginning of each line.
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/305ce2cec9ce241ef4bbc04b?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />Green on
如何安装maptools啊?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/f0bad5e5b09daddb86fe6?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
install.packages("maptools")
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/e0e0dd52cfb?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />wangpeng692 on
学习了,很强大。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/d5e3d103e40aad2231fc34b?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />张丽霞 on
R画世界地图的话,数据去哪找呢?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/078c951c0276bbedd3b777d6e3e6fee4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />joey on
map(“world”)就可以了
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/d6f494fc39401efe8aba0fbff3e57b12?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />chloe-xuan on
(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下,并在R中设好相应的工作空间
你好 我还是不明白这个是怎么设相应工作空间 你能说下具体的位置吗
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/078c951c0276bbedd3b777d6e3e6fee4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />joey on
setwd(“/your/work/directory”)
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/078c951c0276bbedd3b777d6e3e6fee4?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />joey on
请教两个问题:
1.如何在省界的地图中加上地级市的边界。我能分别画出有省界的地图,和地级市界的线,但是不知到怎么重叠在一起,并对部分城市着色
2. 如何解决在ubuntu下地图信息文件中,中文的省名不能识别乱码?
我在win7不用设置GB2312就可以识别中文省名,但在ubuntu11.10下即使设置GB2312还是不能正常显示
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/078c951c0276bbedd3b777d6e3e6fee4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />joey on
对于中文显示问题,暂时找到一个方法
将getColor函数稍作修改:colIndex=sapply(chinamap@dataNAME,f,cityname);改为colIndex=sapply(iconv(chinamap@data<img STYLE="HeiGHT: 4 WiDTH: 0px" BORDER="0" WIDTH="28" HEIGHT="30" ISMATHJAX="true"
ALT="[转载]用R软件绘制中国分省市地图&ZZ"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />
这样可以暂时显示中文省名并着色
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/8f4ffc41db60fc1efda7e95?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />lovely32 on
向您请教一个问题:我想在这幅地图上标上省名,位置尽量不重合,省名是我自己写的(北京,天津,而不是文件中的“北京市”,”天津市”),请问怎么做呢?
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/078c951c0276bbedd3b777d6e3e6fee4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />joey on
可以用正则表达式吗??
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/4dc7daa8dcd?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />陈欢欢 on
getColor=function(mapdata,provname,provcol,othercol)
+ f=function(x,z)
+ ifelse(x%in%z,which(z==x),0)
+ colIndex=sapply(mapdata@data$NAME,f,provname)
+ col=c(othercol,provcol)[colIndex+1]
+ return(col)
& provname=(“武汉市”)
& provcol=(“blue”)
& plot(x,col=getColor(x,provname,provcol,”white”))
错误于colIndex + 1 : 二进列运算符中有非数值参数
& provname=c(“北京市”,”天津市”,”上海市”,”重庆市”);
& provcol=c(“red”,”green”,”yellow”,”purple”);
& plot(x,fg=getColor(x,provname,provcol,”white”));
错误于colIndex + 1 : 二进列运算符中有非数值参数
老师。这个错误是为什么呢?求解答。
等待您的回复。
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/078c951c0276bbedd3b777d6e3e6fee4?s=39&d=monsterid&r=G" WIDTH="39" HEIGHT="39"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />joey on
这个地图是用省边界绘制的,武汉市应该画不出来,网上有市边界的数据包。
plot(x,fg=getColor(x,provname,provcol,”white”));
应该是plot(x,col=getColor(x,provname,provcol,”white”))吧,fg改为col试试~
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="/avatar/d2d1c7e1b3b256a58068e?s=68&d=monsterid&r=G" WIDTH="68" HEIGHT="68"
TITLE="[转载]用R软件绘制中国分省市地图&ZZ" />yadandan on
这个中国地图能用ggplot2画吗?貌似x的对象类型很难转化成数据框
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 关爱地球 的文章

 

随机推荐