使用R语言绘制中国地图

R语言环境

R3.1.1 Windows8.1

需要安装的packages: maptools,gp

绘图所需要的数据

中国地图的GIS数据 (可以此下面的网址下载)

http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip

是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx)

中国各省会城市的经纬度数据

城市,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

绘图脚本


#设置当前工作目录
setwd("E:/R语言学习/")#加载packages
library(sp)
library(maptools)#读取省会城市经纬度数据
data <- read.csv("citylonlat.csv",header=TRUE,sep=",")
#读取各省的边界数据等
border <- readShapePoly("package/china-province-border-data/bou2_4p.shp")#设置输出文件
#jpeg("chinamap.jpeg")#画地图
plot(border,col=rainbow(925),ylim = c(18, 54), panel.first = grid());#增加省会城市坐标点
points(data$Jd, data$Wd, pch = 19, col = rgb(0, 0, 0, 0.5))#增加标注
text(data$Jd, data$Wd, data[,1], cex = 0.6, col = rgb(0,0, 0, 0.7), pos = c(2, 4, 4, 4, 3, 4, 2, 3, 4, 2, 4, 2, 2,4, 3, 2, 1, 3, 1, 1, 2, 3, 2, 2, 1, 2, 4, 3, 1, 2, 2, 4, 4, 2))#增加标签的另一种方式
#pointLabel(data$Jd, data$Wd, data[,1], offset = 0, cex = .6)#设置坐标轴
axis(1, lwd = 0); axis(2, lwd = 0); axis(3, lwd = 0); axis(4, lwd = 0)#输出结果到文件
#dev.off()


绘制的中国地图

参考

http://cos.name/2009/07/drawing-china-map-using-r/

http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r/

http://yihui.name/cn/2008/10/avoid-label-overlap-pointlabel-in-maptools/

http://www.r-project.org/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET MVC 5 学习教程:控制器传递数据给视图

起飞网 ASP.NET MVC 5 学习教程目录&#xff1a; 添加控制器添加视图修改视图和布局页控制器传递数据给视图添加模型创建连接字符串通过控制器访问模型的数据生成的代码详解使用 SQL Server LocalDBEdit方法和Edit视图详解添加查询Entity Framework 数据迁移之添加字段添加验证…

如何将ListT转换相应的Html(xsl动态转换)(二)

一、前言 紧跟着上一篇随笔&#xff0c;本文主要涉及到如何将xml与xsl动态转换成html&#xff0c;这个才是最关键的地方&#xff0c;所有的内容都是围绕这个主题来进行开展的。根据指定的xsl样式将List<T>转换相应的Html&#xff0c;相关的随笔如下&#xff1a; &#xf…

echarts折线图背景线_echarts设置折线线条颜色和折线点颜色的实例

本文主要介绍了jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法,结合实例形式分析了jQuery图表插件echarts设置折线图的相关操作技巧,需要的朋友可以参考下&#xff0c;希望能帮助到大家。1、问题背景设计一条折线图&#xff0c;但是图形中不用插件自带的颜色&am…

saxbuilder用法(转)

xml为我们在网络交换数据带来很大方便,在java中可以使用saxbuilder来操作xml格式文件,下面介绍一下saxbuilder的常用方法.import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;import org.jdom.output.XMLOutpu…

页面添加复制代码功能

简单的"复制代码" 功能<a href"javascript:" οnclick"CopyCode(document.getElementById(code1));">复制代码</a> <div id"code1"> 点击复制 这里放代码这里放代码这里放代码这里放代码这里放代码这里放代码这里放…

Linux CentOS 5.5 服务器安装图文教程

下面开始&#xff1a; 系统版本&#xff1a;CentOS 5.5 将镜像刻成光盘&#xff0c;设置BIOS将CDROM设置为第一启动 启动画面&#xff1a; 通过提示&#xff0c;按ENTER进入图形安装模式&#xff08;E文不好的&#xff0c;赶紧补习去哈~~~&#xff09; 我们按ENTER键 信息检测&…

win10大文件无法移动到U盘

想着把自己的一些文件整理整理&#xff0c;发现稍微大点的文件竟然不能copy到U盘&#xff0c;百度了一番&#xff08;不好意思&#xff0c;最近百度犯错查的正狠^_^&#xff09;,发现因为U盘的格式不是NTFS,只要把U盘格式改为NTFS就可以copy大文件了。 方法一&#xff1a;用命令…

为多孔介质的当量直径_新型纳米多孔碳材料在催化剂载体方面的应用

成分&#xff1a;基本成分为碳91-95%&#xff0c;氧4-8%&#xff0c;氢1%&#xff0c;具有良好的导电性&#xff08;2-10 S/cm&#xff09;和优良的化学稳定性。 结构&#xff1a;内部是三维贯通的纳米孔道结构&#xff0c;每个孔与周围12个孔相连&#xff0c;孔道结构有序&…

Shell 变量的操作方法

在Shell中&#xff0c;经常会用到:和:-这样的操作符。 这两个操作符功能很相似&#xff0c;下面简单比较下: #color"red" echo "color is ${color}" //这样应该会打印color is (空白)稍微改造下: echo "color is ${color:-"no color"}"…

maven-settings.xml的那些事

1、代理<proxies> <proxies><proxy><id>optional</id>//代理名<active>true</active>//true激活该代理<protocol>http</protocol>//代理协议<username>proxyuser</username>//帐号密码<password>prox…

替换空格

题目描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串中的空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 时间复杂度o(n)的算法 先遍历一次字符串统计出空格的总数&#xff0c;计算出替换之后的字符串的总长…

备份数据 宝塔linux_宝塔面板旧版本升级教程汇总—升级宝塔面板

往期教程&#xff1a;宝塔面板教程&#xff08;1&#xff09;基于云服务器搭建宝塔面板教程最全详解宝塔面板教程&#xff08;2&#xff09;宝塔面板添加WordPress站点详细图文教程宝塔面板教程&#xff08;3&#xff09;基于宝塔面板成功配置网站SSL安全证书宝塔面板教程&…

执行全文索引时出现权限不足的解决方法

&#xfeff;在Oracle中&#xff0c;SYS用户是整个数据库的所有者&#xff0c;SYS拥有数据库中几乎所有的权限。今天我们就来介绍一下使用SYS执行全文索引的建立时&#xff0c;出现了权限不足的错误。   许多人刚刚接触Oracle时&#xff0c;对于权限并不是很了解&#xff0c;…

Swift面向对象基础(上)——Swift中的类和结构体(下)

学习来自《极客学院》1 import Foundation2 3 class User {4 var name:String5 var age:Int6 init(name:String,age:Int){7 self.age age8 self.name name9 } 10 } 11 var u1 User(name:"何杨",age:23) 12 var u2 User(name:&qu…

ultraedit26 运行的是试用模式_如何并行运行你的自动化测试?

点击上方蓝色字关注我们~在自动化测试过程中的某些时刻&#xff0c;你将遇到一个共同的问题&#xff0c;那就是&#xff1a;需要花费很长时间去执行大量的UI自动化测试用例。最为有效地加速用例执行的方式就是并行地运行自动化测试。不幸地是&#xff0c;使各个自动化测试用例并…

js实现IE/Firefox的收藏功能

代码&#xff1a; function addFavorite(el){var url window.location.href,title $(head).find(title).html();try{//IEwindow.external.AddFavorite(url, title);}catch(e){ //Firefoxtry{window.sidebar.addPanel(title,url,);}catch(e){if(window.opera){ //operael.hre…

最小点割集

prim算法不仅仅可以求最小生成树&#xff0c;也可以求“最大生成树”。最小割集Stoer-Wagner算法就是典型的应用实例。 求解最小割集普遍采用Stoer-Wagner算法&#xff0c;不提供此算法证明和代码&#xff0c;只提供算法思路&#xff1a; 1.minMAXINT&#xff0c;固定一个顶点P…

问题:从键盘读取特定类型的数据(使用Scanner读取int类型)

import java.util.Scanner; public class ScannerIntTest{public static void main(String [] args){int num1,num2;num1 getIntNumber();//调用函数getIntNumber()来获取一个从键盘输入的整数num2 getIntNumber();System.out.println("first number "num1"-…

在统计学中参数的含义是指_期刊论文中科研统计学缺陷分析及解决路径

中华医学科研管理杂志, 2018,31(5) 张策, 陈淑良, 王晓桐, 等摘要目的从期刊论文统计方法缺陷方面进行分析&#xff0c;并提出解决方案。方法资料采用中国知网文献数据库中的"基础科学"及"医药卫生科技"数据库的全部文献作为抽样源&#xff0c;限定时间为…

SPOJ 962 Intergalactic Map (从A到B再到C的路线)

【题意】在一个无向图中&#xff0c;一个人要从A点赶往B点&#xff0c;之后再赶往C点&#xff0c;且要求中途不能多次经过同一个点。问是否存在这样的路线。&#xff08;3 < N < 30011, 1 < M < 50011&#xff09; 【思路】很巧的一道题&#xff0c;一般我们都是把…