R语言和中国地图
上图是R语言绘制的按地域分布的数据图。更科学,更严谨,也更有质感的样子。
今天瞎写点东西,我在想数据分析的意义是什么,也许就是研究事物存在的形式。而事物存在的形式是什么样子呢,从最初的三维空间,爱因斯坦伯伯把时间也拉了进来,于是时间作为一种变化的空间而存在着,成为第四维。现在好像还发现了第五空间,可能是人的心理空间或者意识空间,还有人说是曲率,不一而足。个人认为i,所有的事物应该都是彼此联系的,没有单纯的独立的与其他东西绝缘的存在。而人的内心,人的思维目前确实是独立于其他四维的空间。所以他应该是另一种存在,但应该以一种其他的形式,可以和其他维度相统一的形式。波么? 还是更细的粒子?亦或是更加悬而未远的东西。
拉回数据分析,数据分析常用的维度吧,时间,空间,以及复杂的人群分布(人的各种属性,造成了各种人群的分布)。而空间,R语言有一些MAP的方法。于是站在巨人的肩膀上,今天来画地图吧。
基本MAP方法:
1.世界地图:有一些R包中存储着常见地图的数据,比如maps包中存有世界地图、美国地图、美国各州郡地图、法国地图以及加拿大城市地图等,加载了这个包,就可以轻松愉快地绘制上述地图。mapdata包中存有中国地图的数据,但是比较旧了,这个数据,重庆还没有从四川分出来呢。
library(maps) map("world", fill = TRUE, col = rainbow(200), ylim = c(-60, 90), mar = c(0, 0, 0, 0)) title("世界地图")
2.中国地图:
调取maptools,ggplot2,mapproj 包,读入大神自己改编绘制的中国维度图。
tmp = as.data.frame(tmp)
城市,Jd,Wd 北 京,116.4666667,39.9 上 海,121.4833333,31.23333333 天 津,117.1833333,39.15 重 庆,106.5333333,29.53333333 哈尔滨,126.6833333,45.75 长 春,125.3166667,43.86666667 沈 阳,123.4,41.83333333 呼和浩特,111.8,40.81666667 石家庄,114.4666667,38.03333333 太 原,112.5666667,37.86666667 济 南,117,36.63333333 郑 州,113.7,34.8 西 安,108.9,34.26666667 兰 州,103.8166667,36.05 银 川,106.2666667,38.33333333 西 宁,101.75,36.63333333 乌鲁木齐,87.6,43.8 合 肥,117.3,31.85 南 京,118.8333333,32.03333333 杭 州,120.15,30.23333333 长 沙,113,28.18333333 南 昌,115.8666667,28.68333333 武 汉,114.35,30.61666667 成 都,104.0833333,30.65 贵 阳,106.7,26.58333333 福 州,119.3,26.08333333 台 北,121.5166667,25.05 广 州,113.25,23.13333333 海 口,110.3333333,20.03333333 南 宁,108.3333333,22.8 昆 明,102.6833333,25 拉 萨,91.16666667,29.66666667 香 港,114.1666667,22.3 澳门,113.5,22.2
按照这个省会资料,重新读取作为地图的标示
代码是这样的
capdate<-read.table("province.csv",header=TRUE,sep="\t")
head(capdate)
chmap = ggplot(mychdat) + geom_map(aes(map_id = id, fill = users), color = "white", map = ch) +geom_text(aes(x = Jd,y = Wd,label = provice), family = "GB1",size=2, data = capdate)+ scale_fill_gradient(high = "darkblue",low = "lightblue") + expand_limits(ch) + coord_map()
print(chmap)
最终出来的效果是这样的
请发表评论