Sarah-491361391
我也是,用的老师提供的完全一样的代码,但是显示不出颜色
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("北京市","12","上海市","重庆市");
provcol=c("red","green","yellow","purple");
plot(x,col=getColor(x,provname,provcol,"white"));
edfall
好多函数或者对象的属性都变啦,这篇文章是不是该更新一下...不然新手完全画不出来
Kate-jc2445
大感谢。。但画中国的人这么多,有没有更完善一点的package呢?每次都要从外部加载GIS再读成图,好麻烦。。。
liuyanguu
Kate-jc2445 是啊,这么多年了,还是没人写一个。
妖孽么么
那个数据包好像不能用了,
错误: 復原文件幻数出错(文件可能有损坏)-- 没有载入任何数据
xiongxiaodai
## 这样似乎更简便些
levels<-iconv(levels(x$NAME),"gb2312","utf-8")
levels(x$NAME)<-levels
Susan-13552944720
刚学习R的新手,想问一下,如果想画中国地图,可以通过选择不同的图例,在地图上显示图例对应的省份, 这种动态的图如何实现?求解
JulyZhang
[未知用户] 我解决了,应该是数据的编码问题,你输入的“北京市”“上海市”等省市信息和mapdata中的省市信息编码不一致,所以你getColor函数返回的全部都是white
Leon-lyzone
[未知用户] 我遇到了同样的问题,x@data$NAME显示的是乱码,发现是系统使用了英文的,导致R默认英文,不识别省份汉字,修改下默认语言就好了。
张
你好,想要请教以下如果在下载的底图中,其中一个城市的一条边界时缺失的,应该如何修正呢?期待您的回复。
张安源
getColor=function(mapdata,provname,provcol,othercol)
{
f=function(x,y) return(ifelse(x %in% y,which(y==x),0));
colIndex=sapply(mapdata$att.data$NAME,f,provname);
fg=c(othercol,provcol)[colIndex+1];
return(fg);
}
学习中,发现没有f函数,没有return是不行的。
张安源
[未知用户] 哦对了,mapdata@data$NAME复制的时候忘记修改了。前面没有显示颜色的,估计是f函数没有return的缘故吧
eddddddie
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(“北京市”,”12″,”上海市”,”重庆市”);
provcol=c(“red”,”green”,”yellow”,”purple”);
plot(x,col=getColor(x,provname,provcol,”white”));
新手使用,就是卡到这一点,显示不出几个地方的颜色
jianqiao
轩哥太牛了
饮露水的鱼
关于如何解决省份中文乱码的问题,可以试试这个办法:
run代码:system("defaults write org.R-project.R force.LANG en_US.UTF-8") ;重启R。
我用的是Mac,完美解决中文乱码的问题。
详细请看这里:https://ozh2014.wordpress.com/2017/01/09/让r读取中文数据/
牛纸为
[未知用户] 太太太太感谢啦!
流病小子
我想问问“”从这里下载中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下,并在R中设好相应的工作空间,然后安装maptools包,运行如下程序:“”
我下载了,解压了,但是不知道怎样设好R相应的工作空间?我尝试几次都是不成功?求具体一点指导
呼啦啦啦汤
想问一下能让画出来的地图大一些吗
呼啦啦啦汤
[未知用户] 用绝对地址,就是你放的路径就可以,类似这样:readShapePoly("D:/地图/bou2_4p.shp")
王利利
> setwd(‘F:\Program Files\R\R-3.4.0\bin\china-province-border-data’);
> library(maptools);
> x=readShapePoly('bou2_4p.shp');
Error in getinfo.shape(filen) : Error opening SHP file
此外: Warning message:
use rgdal::readOGR or sf::st_read
> plot(x);
这样该怎么做??
王利利
为什么标注中国地图时,只显示了乌鲁木齐、呼和浩特、澳门?