“首先,从这里下载中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下,并在R中设好相应的工作空间,”我想问怎么算是在R中设好相应的工作空间啊?我在运行的时候出现“Error in getinfo.shape(filen) : Error opening SHP file”,是不是我把这三个文件解压的位置不对啊?谢谢
9 天 后
[未知用户] 你好,请问你这个问题解决了吗
5 天 后
为什么我做出来的图没有XY轴?
2 个月 后
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","green","yellow","purple");
plot(x,col=getColor(x,provname,provcol,"white"));

为什么按照这个命令运行,结果四个直辖市的颜色显示不出来呢?
1 个月 后
[未知用户] setwd("E://bigdata/china-province-border-data/");
17 天 后
[未知用户] fengliwubi,
你好,我和你运行的code一样,结果四个直辖市的颜色也是显示不出来,不知道是什么原因,你后来解决了吗?
1 个月 后
@fengliwubi @nickcarter

同样的问题,没有报错也没有显示颜色
4 个月 后
我也是,用的老师提供的完全一样的代码,但是显示不出颜色

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"));
2 个月 后
好多函数或者对象的属性都变啦,这篇文章是不是该更新一下...不然新手完全画不出来
8 天 后
大感谢。。但画中国的人这么多,有没有更完善一点的package呢?每次都要从外部加载GIS再读成图,好麻烦。。。
    16 天 后
    那个数据包好像不能用了,
    错误: 復原文件幻数出错(文件可能有损坏)-- 没有载入任何数据
    1 个月 后
    ## 这样似乎更简便些
    levels<-iconv(levels(x$NAME),"gb2312","utf-8")
    levels(x$NAME)<-levels
    刚学习R的新手,想问一下,如果想画中国地图,可以通过选择不同的图例,在地图上显示图例对应的省份, 这种动态的图如何实现?求解
    2 个月 后
    [未知用户] 我解决了,应该是数据的编码问题,你输入的“北京市”“上海市”等省市信息和mapdata中的省市信息编码不一致,所以你getColor函数返回的全部都是white
    [未知用户] 我遇到了同样的问题,x@data$NAME显示的是乱码,发现是系统使用了英文的,导致R默认英文,不识别省份汉字,修改下默认语言就好了。
    你好,想要请教以下如果在下载的底图中,其中一个城市的一条边界时缺失的,应该如何修正呢?期待您的回复。
    4 个月 后
    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的缘故吧
    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”));
    新手使用,就是卡到这一点,显示不出几个地方的颜色