楼主: 耕耘使者
4418 2

[作图问题求助] 作中国地图时的颜色调整 [推广有奖]

贵宾

已卖:5006份资源

学术权威

39%

还不是VIP/贵宾

-

威望
4
论坛币
1811021 个
通用积分
171.7911
学术水平
109 点
热心指数
173 点
信用等级
87 点
经验
93428 点
帖子
4549
精华
0
在线时间
2848 小时
注册时间
2006-4-6
最后登录
2025-7-12

楼主
耕耘使者 发表于 2012-4-8 14:24:13 |AI写论文
100论坛币
R代码如下,用的是五普的各省出生婴儿性别比的数据,但无论如何也调整不好颜色,根本区分不出来,哪位高人指点一下?

library(maptools)
axx<-readShapePoly("bou2_4p.shp", proj4string=CRS("+proj=longlat +ellps=clrk66"))
x=axx
#plot(x,col=gray(924:0/924));#using col instead of fg!

getColor=function(mapdata,provname,provcol,othercol)
{
f=function(x,y) ifelse(x %in% y,which(y==x),0);
colIndex=sapply(mapdata$NAME,f,provname);
col=c(othercol,provcol)[colIndex+1];
return(col);
}

provname=c("北京市","天津市","河北省","山西省","内蒙古自治区",
  "辽宁省","吉林省","黑龙江省","上海市","江苏省",
  "浙江省","安徽省","福建省","江西省","山东省",
  "河南省","湖北省","湖南省","广东省",
  "广西壮族自治区","海南省","重庆市","四川省","贵州省",
  "云南省","西藏自治区","陕西省","甘肃省","青海省",
  "宁夏回族自治区","新疆维吾尔自治区");
pop=c(110.56,112.51,113.43,112.52,108.45,112.83,111.23,109.71,110.64,116.51,
  113.86,127.85,117.93,114.74,112.17,118.46,128.18,126.16,130.30,
  125.55,135.64,115.13,116.01,107.03,108.71,102.73,122.10,114.82,
  110.35,108.79,106.12);
provcol=rgb(red=0.5,green=0.2,blue=0.3);
plot(x,col=getColor(x,provname,provcol,"white"),border = "green",xlab="",ylab="")

最佳答案

qoiqpwqr 查看完整内容

那是因为pop的数字相差太小了。一个办法是你可以都减去最小值 pop
关键词:中国地图 中国地 Library BRARY Tools 中国地图 贵州 黑龙江省 function 内蒙古

沙发
qoiqpwqr 发表于 2012-4-8 14:24:14
那是因为pop的数字相差太小了。一个办法是你可以都减去最小值
pop <- pop - min(pop)
然后再试试看。我的系统是英文的,所以中文的程序没法运行,测试不了。你先试试看,不行再说。
已有 1 人评分学术水平 热心指数 收起 理由
耕耘使者 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

藤椅
耕耘使者 发表于 2012-4-8 23:04:50

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-4 07:10