用R软件绘制中国分省市地图
R语言绘图详解
# 绘制直方图
curve(dnorm(x),add=T) # 添加曲线
h <- hist(x, plot=F) # 绘制直方图
ylim <- range(0, h$density, dnorm(0)) #设定纵轴的取值范围
hist(x, freq=F, ylim=ylim) #绘制直方图
curve(dnorm(x),add=T,col="red") #添加曲线
23
R网络资源
R主页: R资源列表 NCEAS /scicomp/software/r R Graphical Manual http://bm2.genes.nig.ac.jp/RGM2/index.php 统计之都: / QuikR / 丁国徽的R文档: /R/R-doc/ R语言中文论坛 /Rbbs/forums/list.page
20
1
2
3
4
5
6
图7 分步绘图
21
主要讲了什么?
1. R是开源的统计绘图软件,也是一种脚本语言,有大量的程序包可以利 用。
2. R中的向量、列表、数组、函数等都是对象,可以方便的查询和引用, 并进行条件筛选。
3. R具有精确控制的绘图功能,生成的图可以另存为多种格式。 4. R编写函数无需声明变量的类型,能利用循环、条件语句,控制程序的
11
图6 绘图举例
12
试一试其他绘图函数
boxplot(x) barplot(y) stripchart(x)
例:分步绘图
1.打开绘图窗口,不绘制任何对象 plot(x, y, type="n", xlab="", ylab="", axes=F) 2.添加坐标点 points(x,y) 3.添加坐标轴 axis(1); axis(at=seq(0.2,1.8,0.2), side=2) 4.补齐散点图的边框 box() 5.添加标题、副标题、横轴说明、纵轴说明 title(main="Main title", sub="subtitle", xlab="x-label", ylab="y-label")
R绘制中国地图 并展示流行病学数据_光环大数据培训机构
R绘制中国地图并展示流行病学数据_光环大数据培训机构流行病学的数据讲究“三间分布”,即人群分布、时间分布和空间分布。
其中的“空间分布”最好是在地图上展示,才比较清楚。
R软件集统计分析与高级绘图于大成,是最适合做这项工作了。
关于地图的绘制过程,谢益辉、邱怡轩和陈丽云等人都早有文章讲述,开R地图中文教程之先河。
由于目前指导毕业论文用到,因此研究了一下。
本来因为网上教程很多,曾打消了写些文字的计划,但怡轩版主鼓励说“教程者众,整合者鲜”,所以才战胜拖延症,提起拙笔综述整合一下,并对DIY统计GIS地图提出了一点自己的想法。
1 地图GIS数据的来源与R绘制软件包中国地图GIS数据的官方数据可以在国家基础地理信息中心的网站()里面可以免费下载。
官方公开的数据包括:地图数据,及居住地、交通、河流等辅助数据。
今年6月开始,官方正组织开始制作新版数据。
老数据暂时无法下载,读者要自行百度搜索,本文以旧版数据为例。
旧版地图数据中部分地名和地市区划已经过时,使用时需注意。
地图数据有4个压缩文件:bou1_4m.zip、bou2_4m.zip、bou3_4m.zip和bou4_4m.zip。
bou代表边界的意思,数字1~4代表国家、省、市、县的4级行政划分;4m代表比例是400万分之一,这个比例的图形是公开的。
每个文件解压缩后含有两类文件:以字母p结尾的表示多边形数据,用来绘制区域;以字母l结尾的文件是线形数据,用来绘制边界。
但是老版数据中,市级数据中缺少绘制区域的多边形数据,让市级分布图的绘制稍麻烦一些,新版中也许会有改进。
用R绘制地图比较简单。
比如画一下全国范围的区域,可以用如下代码:library(maptools)mydat =readShapePoly("maps/bou1/bou1_4p.shp")plot(mydat)但是,可以看出这样绘制的地图的形状有些扁平。
这是因为,在绘图的过程中,默认把经度和纬度作为普通数据,均匀平等对待,绘制在笛卡尔坐标系上造成的。
利用R2V与ARCGIS制作中国政区图
步骤(1)打开R2V并添加中华人民共和国行政区划图。
(2)利用R2V在图中分别建立国界、省(自治区)直辖市界、首都、省会(首府)、岛屿、主要河流6个图层,分别进行矢量化。
在R2V中打开图层:编辑| 定义图层,并添加6个图层。
(3)在图中左上、左下、右上、右下分别添加4个控制点,并将屏幕坐标改为地理坐标。
A:在R2V中:编辑| 控制点编辑| 控制点编辑开/关,在图中指定位置经纬网交点处选取控制点。
B:将屏幕坐标改为地理坐标:分别单击选取的控制点,分别在新弹出的对话框右侧的值改为经纬度坐标。
(4)利用R2V的矢量输出功能输出矢量:单击文件|输出矢量,弹出“另存为”对话框,分别生成边界、河流、省市的.shp格式数据。
(5)在ARCMAP中添加边界、河流、省市的.shp格式数据:单击“添加数据”,选取边界、河流、省市的.shp格式数据,并添加。
(6)进行定义投影(在Arctoolbox中打开数据管理工具| 投影和变换| 定义投影,在定义投影对话框中输入数据集(如heliu),坐标系:点击添加,选择Geographic Coordinate Systems | world | WGS1984.prj,添加、应用。
最后同样对省市和边界进行定义投影)。
(7)投影转换(数据管理工具| 投影和变换| 要素| 投影,在投影转换对话框中输入数据集(bianjie),输出坐标系:单击添加| 选择| 选择Projected Coordinate Systems | continental | Asia | Asia North Albers Equal Area Conic.prj,添加、应用,保存名称改为bianjiealbers,河流、省市也是如此,最终转换成ALBERS等面积投影)。
边界、河流、省市投影转换完成后。
(8)要素转面(数据管理工具| 投影和变换| 要素|要素转面,输入要素(bianjiealbers.shp),确定保存路径,确定)。
使用R进行数据可视化的入门教程
使用R进行数据可视化的入门教程R是一种用于统计分析和数据可视化的编程语言和软件环境。
它提供了强大的数据处理和可视化功能,使用户能够更好地理解和解释数据。
本文将介绍如何使用R进行数据可视化的入门方法,包括数据导入、基本绘图函数的使用、常用图形类型和高级可视化技巧。
第一章:数据导入与准备数据导入是数据可视化的第一步。
R支持多种数据格式,包括CSV、Excel、SQL数据库等。
在R中,可以使用read.csv()、read.xlsx()、read.sql()等函数来读取不同格式的数据。
读取数据之后,可以使用head()函数来查看数据的前几行,使用str()函数来查看数据的结构和类型。
第二章:基本绘图函数的使用R中提供了一些基本的绘图函数,如plot()、hist()、boxplot()等,用于绘制散点图、直方图、箱线图等常见的图形。
使用这些函数只需要指定输入数据和一些基本参数,就能生成对应的图形。
例如,使用plot()函数可以将数据中的两个变量绘制成散点图,使用hist()函数可以将数据绘制成直方图。
第三章:常用图形类型除了基本的散点图、直方图和箱线图外,R还支持绘制多种常用图形类型,如折线图、条形图、饼图等。
可以使用ggplot2包中的函数来实现这些图形的绘制。
ggplot2具有丰富的功能和灵活的图形组织方式,可以轻松地定制图形的样式和布局。
通过调整参数和添加图层,可以进一步增强图形的表达力。
第四章:高级可视化技巧除了基本的绘图函数和常用图形类型外,R还支持一些高级的可视化技巧,用于展示更复杂的数据关系和模式。
例如,可以使用ggplot2包中的geom_smooth()函数来绘制平滑曲线,以显示变量之间的趋势。
此外,还可以使用ggplot2包中的facet_grid()函数来创建分面图,将数据按照指定的变量进行分组显示。
第五章:交互式可视化交互式可视化允许用户与图形进行交互,从而更深入地探索数据。
R中的shiny包提供了一种创建交互式应用程序的方法。
用Matlab绘制中国行政区划地图
⽤Matlab绘制中国⾏政区划地图步骤1:从⽹站下载数据⽂件。
选择 Country: China,再选择 Shapefile,会下载得到⼀个名为 “gadm36_CHN_shp.zip” 的压缩⽂件。
步骤2:解压数据⽂件。
解压得到⼀系列⽂件,其中 *.shp 是 Matlab 绘图⽤到的。
其中,gadm36_CHN_0.shp、gadm36_CHN_1.shp、gadm36_CHN_2.shp、gadm36_CHN_3.shp,分别表⽰国、省、市、县四级⾏政区划的详细经纬度界线。
步骤3:加载数据⽂件。
使⽤ shaperead 函数可以直接加载 Shapefile 数据⽂件。
ShapeFile = 'D:\data\gadm36_CHN_shp\gadm36_CHN_0.shp';MapData = shaperead(ShapeFile);MapData.GeometryMapData.BoundingBocMapData.LontMapData.GID_0_0步骤 App:台湾省地图缺失问题的解决步骤1-2加载的 <China> 地图,缺少了台湾省,并不是完整的中国!需要重新执⾏步骤1⾄步骤2,选择“Taiwan”,下载得到台湾省的省、市、县、镇四级⾏政区划地图。
⽽且,台湾省的地图级别设置不对,在步骤3合并CHN 和 TWN 的地图时,需要调整对应的级别,使它的“国”属性消失,才能正常显⽰。
这⾥给出⼀个中国的省级⾏政区划绘制的⽰例:ShapeFile = 'D:\data\gadm36_CHN_shp\gadm36_CHN_1.shp'; % CHN的省界划分ShapeFile_TWN = 'D:\data\gadm36_TWN_shp\gadm36_TWN_0.shp'; % TWN 的省界划分MapData = shaperead(ShapeFile);MapData_TWN = shaperead(ShapeFile_TWN);hold on;plot(MapData.Lon, t, '.')plot(MapData_TWN.Lon, MapData_t, '.')。
ggplot2和maps的用法
ggplot2和maps的用法ggplot2是一个常用的R包,用于绘制数据可视化图形。
它提供了一套简单而强大的语法,可以轻松创建各种类型的图形,包括散点图、折线图、直方图等。
maps是另一个R包,用于在R中绘制地理空间数据的地图。
它提供了各种地理地图的数据,包括国家、州、省、县等。
maps包还提供了一些用于控制地图样式和绘图参数的函数。
下面是ggplot2和maps包经常使用的一些函数和用法示例:1. 安装和加载包:```Rinstall.packages("ggplot2")install.packages("maps")library(ggplot2)library(maps)```2. 绘制散点图:```R# 创建数据集data <- data.frame(x = rnorm(100), y = rnorm(100))# 绘制散点图ggplot(data, aes(x = x, y = y)) +geom_point()```3. 绘制地图:```R# 绘制世界地图world_map <- map_data("world")# 绘制地图ggplot() +geom_polygon(data = world_map, aes(x = long, y = lat, group = group), fill = "grey") +theme_void()```这些示例只是ggplot2和maps包的一小部分功能。
ggplot2提供了更多的图形选项和美化工具,而maps包可以利用更多的地理数据来绘制更精细的地图。
要深入了解这些包的功能和用法,建议查阅它们的官方文档和在线教程。
超简单的中文数据画图(R语言)
超简单的中文数据画图(R语言)大神一句话,菜鸟跑半年。
我不是大神,但我可以缩短你走弯路的半年~就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!师姐来找我画图,数据是各地昆虫的某种评价指标,每个地方有94个数,要比较一下其中几个地区之间有无差别。
就把他当作一个学习的数据来做,不必理会背后的意义。
原始数据大概是这样,19个地区,94行(当然我已经篡改过),在生信星球公众号回复‘1994’可以获得示例数据,将它放到你的工作目录下,然后来练习。
啊,问题就是要处理中文。
给我的地名就是文字,用字符串分割,改上列名。
rm(list = ls())options(stringsAsFactors = F)x=read.csv('test.csv');head(x)zz='云南普洱江苏泰州江苏扬州河北沧州安徽鞍山陕西杨凌湖北武汉江西南昌山东夏津山东烟台山东东营河南新乡河北廊坊山西原平内蒙古辽宁沈阳吉林长春黑龙江哈尔滨新疆石河子'library(stringr)col=str_split(zz,'\t',simplify = T)colnames(x)=collibrary(tidyr)tid = gather(x,key = '地名',value='δ13C(‰)')tid1=tid[tid$`地名` %in% c('云南普洱','江苏泰州','江苏扬州','河北沧州','安徽鞍山','河北廊坊'),]然后找了一个简单又好看的图library(ggstatsplot)ggbetweenstats(data = tid1,x = `地名`,y = `δ13C(‰)`,xlab = '地名')中文的列名和奇怪的字符,用``给装起来就能用咯。
利用python绘制中国地图(含省界、河流等)
利⽤python绘制中国地图(含省界、河流等)我们可以使⽤Basemap这个⼯具包来实现中国地图的绘制⾸先需要加载⼀些包:import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.basemap import BasemapBasemap包就是⽓象画图的利器,现在我们就可以愉快的画图了!plt.figure(1)map=Basemap()map.drawcoastlines()plt.title(r'$World\ Map$',fontsize=24)plt.show()第2⾏创建⼀个地图,第3⾏添加海岸线,这样⼀个世界地图就出来了,怎么样,很简单吧。
(plt.show()这⾏代码是⽤来显⽰图⽚的)我们发现这只是海岸线图,那么怎么将国界线添加上去呢?很简单,只要添加⼀⾏代码就可以了。
map.drawcountries()那么怎么添加河流呢?可能有些同学已经猜到了,就是drawrivers()map.drawrivers(color='blue',linewidth=0.3)好了,现在我们可以开始画中国地图了!其实只要在创建地图时指定⼀下范围就可以了,查阅资料发现,中国的经纬度范围是东经135度2分30秒-东经73度40分,北纬3度52分-北纬53度33分。
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54)CHN='G:\python_material\MapOfChina'CHN的值就是解压后的地图⽂件所在的地址。
下⾯我们就可以加⼊省界了!map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1','states',drawbounds=True)别忘了把台湾省加上去map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1','taiwan',drawbounds=True)还可以在地图上加上经纬度,⽐如我们要画5条经纬线,可以这么做:parallels = np.linspace(3,55,5)map.drawparallels(parallels,labels=[True,False,False,False])meridians = np.linspace(70,140,5)map.drawmeridians(meridians,labels=[False,False,False,True])⼤功告成!但是,emmm,我们发现好像有点歪?我们可以在创建地图时选择投影参数。
【实操】R软件绘制中国分省市地图
【实操】R软件绘制中国分省市地图在R中绘制地图其实是十分方便的,最直接的办法大概就是安装maps和mapdata这两个包,然后输入下面的命令:library(maps)library(mapdata)map("china")其中map()函数还可以加上很多参数,在这里就不一一详述,具体的用法只需问号之。
然而仔细看一看这张地图你会发现重庆市和四川省仍然是浑然一体,可见该地图的数据应该是有些年头了。
中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf、bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下,并在R中设好相应的工作空间,然后安装maptools包,运行如下程序:library(maptools);mp=readShapePoly('D:/R/R-3.1.2/Maps/ChinaProvinceBorder/bou2_4p.shp');#下文中会继续用到x这个变量#如果你用的是其它的名称,#请在下文的程序中也进行相应的改动。
plot(mp);这时一张完整的中国地图就已经画好了。
但是在实际使用的过程中,我们往往会根据自己的需要对地图中的某些省份着以特定的颜色,这时就可以通过调节plot命令中的col参数来予以实现。
然而为了清楚地说明这部分的内容,我需要插播一段R绘制地图的原理。
在绘制地图时,每一个省市自治区或者岛屿都是用一个多边形来表示的。
之前的GIS数据,其实就是提供了每一个行政区其多边形逐点的坐标,然后R软件通过顺次连接这些坐标,就绘制出了一个多边形区域。
在上面的数据中,一共包含了925个多边形的信息,之所以有这么多是因为一些省份有很多小的附属岛屿。
在这925个多边形中,每一个都对应一个唯一的ID,编号分别从1到925。
回到刚才的话题,plot命令中的col参数在本例中应该是一个长度为925的向量,其第i个分量的取值就代表了地图中第i个多边形的颜色。
MARS出品中国分省地图PPT具体到地级市中华大区分区版
各省/直辖市/自治区地图 手绘——可随意换色
东北地区
东北:黑龙江、吉林、辽宁
吉林省
辽宁省
黑龙江省
西北地区
西北:新疆、青海、甘肃、宁夏、陕西
新疆维吾尔自治区
青海省
甘肃省
宁夏回族自治区
陕西省
西南地区
西南:西藏、云南、贵州、四川、重庆
西藏自治区
云南省
四川省
贵州省
重庆市
华北地区
华北:内蒙古、山西、河北、北京、天津
内蒙古自治区
山西省
河北省
北京市
天津市
华东地区
华东:山东、安徽、江西、江苏、浙江、上海
上海市
安徽省
山东省
江西省
江苏省
浙江省
华南地区
华南:广西、广东、福建、海南、澳门、香港
广西壮族自治区
广东省
福建省
海南省
临高县 儋州市
澄迈县
昌江黎族自治县 东方市
白沙黎族自治县
屯昌县 琼中黎族苗族自治县
琼海市
五指山市 东Leabharlann 黎族自治县万宁市保亭黎族苗族自治县 陵水黎族自治县
文昌市
澳门特别行政区
香港特别行政区
华中地区
华中:河南、湖北、湖南
河南省
湖北省
湖南省
台湾
手绘中国地图——每个省可随意换色
东北/西北/西南/华北/华东/华南/华中
东北:黑龙江、吉林、辽宁 西北:新疆、青海、甘肃、宁夏、陕西 西南:西藏、云南、贵州、四川、重庆 华北:内蒙古、山西、河北、北京、天津 华东:山东、安徽、江西、江苏、浙江、上海 华南:广西、广东、福建、海南、澳门、香港 华中:河南、湖北、湖南
R绘制中国航线分布夜景图_光环大数据培训
R绘制中国航线分布夜景图_光环大数据培训一、地图数据来源地图所使用的数据均可以从网上下免费下载。
航线、机场坐标:/data.html机场:airports.dat航线:routes.dat板块地图、都市地图:/downloads/世界地图:ne_10m_admin_0_countries.shp都市地图:ne_10m_urban_areas.shp(注:都市地图是用来绘制灯光效果的。
)二、地图绘制所需的包以下软件包均是绘制地图相关的,其中有一些可能没有被直接使用。
library(maptools)library(ggplot2)library(ggmap)library(maps)libra ry(rgeos)library(shapefiles)library(geosphere)library(plyr)library(sp )在Linux下,R语言中与地理相关的包可能需要安装如下工具:geos-devel-3.2.2geos-3.2.2这两个软件互相依赖,需要同时安装、更新。
例如对于Linux CentOS 5.5,可以运行如下命令:yum install geos-devel-3.2.2*.rpm geos-3.2.2*.rpm三、数据处理这一部分的主要工作是将shapefile文件转化为R可以识别的格式,然后建立数据与地图坐标间的关联。
本文使用了航线频数来计算地图航线绘制的亮度。
读者根据需要可以自行关联所需数据,例如成本,平均成本,旅客人次等,以达到不同的研究目的。
函数介绍:readShapePoly():读取图形文件用,建议直接将解压后的图形文件放在工程环境中。
fortify():将地图数据转化为ggplot可以使用的格式。
gcIntermediate():模拟圆弧,将两点间连线圆弧化。
代码如下:# 读取都市地图文件读取版图地图文件urbanareasin <- readShapePoly("ne_10m_urban_areas.shp")worldmapsin <- readShapePoly("ne_10m_admin_0_countries.shp")# 以下为格式转化worldmap <- fortify(worldmapsin)urbanareas <- fortify(urbanareasin)gpclibPermit()# 开始抽取机场数据airports <-read.table("airports.dat", sep = ",", header = FALSE)worldport <- airports[airports$V5 != "", c("V3", "V5", "V7", "V8","V9")]names(worldport) <- c("city", "code", "lan", "lon", "att")worldport$lan <- as.numeric(as.character(worldport$lan))worldport$lon <- as.numeric(as.character(worldport$lon))# 找出所有航线有标识的机场(这里的data3.redu2s是我个人的航线数据# 读者可以用上文提到的航线数据routes.dat代替)lineinworld <- (data3.redu2s$AIRPORT_FROM_CODE %in% worldport$code) & (data3.redu2s$AIRPORT_TO_CODE %in% worldport$code)# 有243条航线无标识table(lineinworld)# colnames(data3.upro1)worldline <- data3.redu2s[lineinworld,c("AIRPORT_FROM_CODE", "AIRPORT_TO_CODE")]flights.ag <- ddply(worldline, c("AIRPORT_FROM_CODE", "AIRPORT_TO_CODE"), function(x) count(x$AIRPORT_TO_CODE))# 计算三字码映射到机场flights.ll<- merge(flights.ag, worldport, by.x = "AIRPORT_TO_CODE", by.y = "code", all.x = T)flights.ll <- flights.ll[order(flights.ll$AIRPORT_FROM_CODE,flights.ll$AIRPORT_TO_CODE), ]flights.lf <- merge(flights.ag, worldport, by.x = "AIRPORT_FROM_CODE", by.y = "code", all.x = T)flights.lf <- flights.lf[order(flights.lf$AIRPORT_FROM_CODE,flights.lf$AIRPORT_TO_CODE), ]# beijing.ll <-#c(worldport$lon[worldport$code=='PEK'],worldport$lan[worldport$code=='PEK'])rts <- gcIntermediate(flights.lf[,c("lon", "lan")], flights.ll[, c("lon", "lan")], 100, breakAtDateLine = FALSE, addStartEnd = TRUE, sp = TRUE)# rts.ff <-# fortify.SpatialLinesDataFrame(rts)flights.lf[,c('lon', 'lan')]rts <-as(rts, "SpatialLinesDataFrame")# 航线坐标数据rts.ff <- fortify(rts)#航线信息与航线坐标信息关联flights.ll$id <-as.character(c(1:nrow(flights.ll)))table(gcircles$freq)gcircles <-merge(rts.ff, flights.ll, all.x = T, by = "id")如代码中的注释所述,data3.redu2s这个变量可以从routes.dat读取得到,过程如下:data3.redu2s <- read.table("routes.dat", sep = ",", header =FALSE)colnames(data3.redu2s)[c(3, 5)] <- c("AIRPORT_FROM_CODE", "AIRPORT_TO_CODE")四、地图旋转这一步是对地图进行坐标变换,设置中国为世界中心,这里做了简单的坐标加减运算。
如何轻松地绘制各地的等高线地形图
如何轻松地绘制各地的等高线地形图,那么具体如何操作呢,现在就简单的给大家介绍一下。
这里需要两个软件一个就是global mapper 另一个可能大家不太知道就是非常有名的等值线绘图软件surfer目前是8.0版本。
现在就介绍一下这两款软件。
global mapper:Global Mapper是一款地图绘制软件,不仅能够将数据(例如:SRTM数据)显示为光栅地图、高程地图、矢量地图,还可以对地图作编辑、转换、打印、记录GPS及利用数据的GIS(地理信息系统)功能.6.xx版增加了直接访问USGS(美国地质勘探局)卫星照片TerraServer数据库和Global Mapper内部的地形图及以真实的3D方式查看高程地图的功能.Golden Software Surfer 8.0(以下简称Surfer)是一款画三维图(等高线,image map, 3d surface)的软件,该软件简单易学,可以在几分钟内学会主要内容,且其自带的英文帮助(help菜单)对如何使用surfer 解释的很详细,其中的tutorial教程更是清晰的介绍了surfer的简单应用,应该说surfer软件自带的帮助文件是相当完美且容易阅读的,只要学过英语的人都可以很快上手。
而且还可以下载汉化版。
Surfer是具有插值功能的绘图软件,因此,即使你的数据是不等间距的,依然可以用它作图。
但依据作者的经验,最好不使用Surfer自带的插值功能,尤其是要精确确定等高线时。
由于surfer是美国的一个软件,它不提供对中文的支持,这可以算的上一个小的遗憾。
Surfer的主要功能是绘制等高线图(contour map),此外它还可以绘制post map,classed post map,vector map,image map,wireframe. map,3d surface map,等形式的图形。
其功能是比较强的,但没有各种投影变化是它的一大缺点。
r语言画地图 附数据代码
scale_color_gradient(low="blue",high="red") +labs(title ="T type")
dd=read.csv("Land-Registry-Data-London-2015.csv")
head(dd)
dd$longitude=as.numeric(dd$Easting)
dd$latitude=as.numeric(dd$Northing)
hist(dd$longitude)
hist(dd$latitude)
libБайду номын сангаасary(ggmap)
HoustonMap<-qmap(location = "london", zoom =10)
dd1=na.omit(dd[,c("longitude","latitude","Price","Type")])
HoustonMap1+ geom_point(aes(x=dd1$longitude,y=dd1$latitude,colour=dd1$Price,size=20*dd1$Price), data=dd1)
HoustonMap+geom_point(aes(x=dd1$longitude,y=dd1$latitude,col=(dd1$Price) ),data=dd1) +
R语言画地图
R语言画地图工作需要,画某市地图,百度下发现,R有几个可用的包。
首先,是maps包,可以一句代码画世界地图、美国地图,不过里面没有中国地图的数据,需要配合mapdata包,不过貌似mapdata包的数据也比较老旧,细心的人就发现画出来的中国地图里面没有重庆。
然后,就是高大上的ggmap包,连接google map的API, 能提供丰富的最新的数据,还有什么道路图,卫星图都一个参数搞定,详细介绍请参见/2013/01/drawing-map-in-r-era/ ,但是我连不上google啊,只能望包兴叹。
然后,我想到了百度出品的echarts,貌似里面也有地图啊。
不过JavaScript咱不太懂,不过不要紧,早有大神写了recharts包,用R 照样使用echarts,不过,我历尽千辛万苦成功安装recharts包后发现,包里只默认画中国地图,某省的地图的数据等貌似没存,就更别说某市的了。
最后,只能使用最原始的方法了,自己画多边形,构成地图吧,不过这也需要有经纬度数据啊。
幸好,在前面的搜索中,发现地图的经纬度数据,还是有地方存储的。
比如地方1:/country 这里存储有全国分省的数据、某省分市的数据、某市分县的数据,不过,我所需要的那个市的数据,还是太老了,老的没法用。
地方2:配套echarts使用的地图数据在线生成工具,/echarts-map-tool/ ,这里的数据虽然也不是最新的(几个新区均没有划分出来),也凑合能用了。
注意:这里下载的数据是json格式,可以用RJSONIO包,很方便就转换成的R的列表格式。
还有,下载的文件是UTF-8编码,如果你用的是windows系统,还要手动用“记事本”打开,另存为ASCII编码,不然你使用RJSONIO转换时,数据中的省市区中文名称老是乱码报错,无法成功转换。
这就该画多边形了,可以用maptools包中的函数,详细可以参考/2009/07/drawing-china-map-using-r/ ,我这里莫名其妙的安装maptools包失败,就转用ggplot2包,终于搞定。
rmaps地图
RMaps(android版)是一款运行于android系统的导航工具。
您可以像使用在线地图浏览器一样使用RMaps查看多种热门地图,也可以浏览由您PC创建中的离线地图。
【功能简介】1、支持多种在线地图,中国用户使用Google Map和Microsoft Map China就足够了。
2、支持SQLite数据库格式的离线地图。
你可以制作不同的Map和地区的地图,非常灵活。
3、定位和导航。
只要开启了GPS或无线网络定位,就可以快速在地图上找到你的位置,当你移动的时候还可以指示你前进的方向(运动轨迹),从此不会再迷路。
4、搜索位置。
这个功能需要网络,但流量是很小的。
5、指南针功能。
将地图和指南针结合,让你清楚东南西北。
6、书签功能,或叫兴趣点(POI)。
将你感兴趣的地点保存,方便以后快速定位查看。
【使用方法】1、安装apk,如果安装失败请先卸载旧版再安装。
2、把下载后的地图文件(如:China_maps.sqlitedb)复制到SD卡,最终位置例如:/rmaps/maps/China_maps.sqlitedb。
3、以Rmaps为例,打开软件后按菜单进入设置,对于在线地图建议只保留Google Map和Microsoft Map China就足够了。
启用你需要的离线地图,返回主界面按菜单-地图,弹出的菜单就会显示你所选择的地图(在线和离线的),选择其中一个就可以开始使用了。
4、软件为中文,理论上支持所有Android机型和ROM。
5、使用提示:如果没有显示地图,可先把缩放级别调小到7级以内,因为有世界地图和中国地图,然后找到自己的位置再放大。
没有找到自己位置的朋友请确认GPS已开启,或者用GPSStatus查看卫星状态,其实RMaps定位速度很快的,室外最多十秒。
首次启用大地图可能会慢点,可尝试关了再开。
使用ArcGIS进行地图制图和空间数据处理
使用ArcGIS进行地图制图和空间数据处理地图对于人类来说是非常重要的,因为它们展示了地球上地理事物的基本信息和关联性。
很多人都需要利用地图制图和空间数据处理,而ArcGIS在这方面是非常有用的工具。
ArcGIS是由Esri开发的一套强大的地理信息系统软件。
它提供了一个完整的GIS平台,从数据采集、空间数据处理、地图制图到空间数据分析与可视化都可以在这个平台上实现。
使用ArcGIS 进行地图制图和空间数据处理可以帮助我们更好地掌握信息,并能更好地计划和决策。
一、数据格式在使用ArcGIS时,需要注意数据的格式。
ArcGIS最常用的数据格式包括Shapefile、文件地理数据库(file geodatabase)和个人地理数据库(personal geodatabase)。
其中Shapefile是一种广泛使用的格式,可以储存各种信息,如点、线、面和注记等。
文件地理数据库和个人地理数据库则允许用户创建更复杂的数据结构,并提供更高效的空间数据存储。
在选择数据格式时,需要根据具体需要来选取最适合的格式。
二、数据导入和处理一旦确定了数据格式,就需要使用ArcGIS将数据导入软件中进行处理。
数据导入可以通过多种途径实现,如手动输入、从外部文件中导入或从互联网上下载等。
一旦数据导入成功,就可以开始对数据进行处理了。
在数据处理方面,ArcGIS拥有强大的空间数据处理功能。
这些功能包括空间查询、空间缓冲、地形分析和距离测量等。
通过这些工具,用户可以快速地进行空间数据处理和分析,并得出有用的结论。
三、地图制图地图制图是ArcGIS的重要功能之一。
它可以帮助用户将空间数据可视化,并用更直观的方式展示地理信息。
在地图制图时,用户可以选择不同的地图样式和配色方案,以适应不同需求的地图制作。
要制作一幅地图,需要关注以下几个方面:1.地图投影:不同的地图投影会产生不同的空间变形,因此需要根据具体需要选择最合适的投影方式。
2.制图元素:地图包含许多元素,如地图标题、比例尺、方向指示、图例等等。
学习使用ArcMap进行地理数据处理和地图制作
学习使用ArcMap进行地理数据处理和地图制作第一章:ArcMap简介ArcMap是一款专业的地理信息系统软件,被广泛应用于地理数据的处理和地图制作。
它提供了丰富的功能和工具,能够帮助用户高效地分析和展示地理数据。
第二章:地理数据导入使用ArcMap进行地理数据处理的第一步是导入数据。
ArcMap 支持导入多种格式的地理数据,包括矢量数据、栅格数据和数据库数据等。
用户可以通过文件菜单中的“添加数据”命令或使用“添加数据”工具栏按钮来导入数据。
第三章:地理数据编辑在ArcMap中,用户可以对导入的地理数据进行编辑。
编辑包括添加、删除和修改地理要素,以及对属性表进行修改等操作。
ArcMap提供了一系列编辑工具,如选择工具、绘制工具和修改工具等,用户可以根据需要进行编辑操作。
第四章:地理数据分析ArcMap强大的地理数据分析功能,使用户可以进行复杂的地理数据分析。
用户可以使用空间分析工具、统计分析工具和网络分析工具等来进行各种类型的分析,如空间查询、空间统计和路径分析等。
地理数据分析能帮助用户深入理解地理现象,支持决策制定和规划设计等工作。
第五章:地图制作除了地理数据处理,ArcMap还可以用于地图制作。
用户可以根据需求创建新地图,并选择合适的底图样式。
通过添加和调整图层,用户可以构建自己想要的地图内容。
ArcMap提供了丰富的符号和标注选项,使用户能够设计出清晰美观的地图。
第六章:地图输出制作完成的地图可以通过多种方式进行输出。
用户可以选择将地图输出为图像文件(如JPEG、PNG和TIFF等),或者打印为纸质地图。
此外,ArcMap还支持将地图发布为Web地图服务,用户可以通过互联网进行在线浏览和共享。
第七章:地理数据共享ArcMap支持地理数据的共享和交换。
用户可以将地理数据导出为常用的地理信息系统格式,如Shapefile、GeoDatabase和KML等。
此外,ArcMap还支持地理数据发布为Web服务,通过Web服务可以将地理数据共享给其他用户使用。
常用地图编制软件及其功能介绍
常用地图编制软件及其功能介绍地图编制软件是如今制作地图的主要工具之一。
随着科技的发展,地图的使用变得越来越广泛,涵盖了各个领域。
在城市规划、导航系统、应急救援等方面,地图已经成为不可或缺的工具。
地图编制软件的功能强大,能够制作出高质量、精确的地图。
下面,我们将介绍几款常用的地图编制软件及其功能。
1. ArcGISArcGIS是一款由Esri公司开发的专业地理信息系统(GIS)软件。
它是业界领先的地图制作工具,提供了丰富的地图制作功能。
ArcGIS支持多种地图数据格式,可以导入地形、卫星图像、道路网络等数据,也可以绘制各种矢量图形。
用户可以通过ArcGIS进行地图的编辑、符号化、标注、地理分析等操作。
此外,ArcGIS还提供了强大的数据分析功能,可以进行地理空间分析和模型建立,帮助用户深入理解地理数据。
2. QGISQGIS是一个开源的地理信息系统软件,它具有用户友好的界面和强大的地图制作功能。
QGIS支持多种地图数据格式,包括常见的矢量数据和栅格数据。
用户可以通过QGIS导入地图数据,进行编辑、制图、标注和符号化。
与ArcGIS相比,QGIS不仅功能上相似,而且具有更简洁的用户界面和更低的使用成本,因此在学术界和个人用户中非常受欢迎。
3. Google Earth ProGoogle Earth Pro是一款强大的地球浏览器,也可以用于地图制作。
Google Earth Pro提供了全球卫星和航拍图像,用户可以通过它来制作高分辨率的地图。
该软件具有先进的3D渲染技术,可以展示地理数据的立体效果。
用户可以在Google Earth Pro中添加图层、标记地点、绘制路径等。
此外,Google Earth Pro还支持导出地图为KML或KMZ文件,方便与其他人共享。
4. AutoCAD Map 3DAutoCAD Map 3D是由AutoCAD开发的一款专业地图制作软件。
它结合了CAD和GIS技术,可以用于绘制、编辑和分析地图数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用R 软件绘制中国分省市地图 2009/07/02 邱怡轩版权声明:本文版权归原作者所有,未经许可不得转载。
原文可能随时需要修改纰漏,全文复制转载会带来不必要的误导,若您想推荐给朋友阅读,敬请以负责的态度提供原文链接;点此查看如何在学术刊物中引用本文【注】新版本的maptools 包对很多函数进行了修改,对于修改的内容,文章中用红色的文字进行了说明。
鉴于最近有不少人在讨论用R 软件绘制地图的问题,我也就跟着凑了凑热闹,对相应的方法学习了一番。
下面的这篇文章是一个初步的介绍,还有很多内容仍在学习和探索中,如果大家有什么意见或建议,我将根据自己学习的情况对文章进行进一步的补充。
在R 中绘制地图其实是十分方便的,最直接的办法大概就是安装maps 和mapdata 这两个包,然后输入下面的命令:1 2 3 library(maps)library(mapdata)map("china")其中map()函数还可以加上很多参数,在这里就不一一详述,具体的用法只需问号之。
然而仔细看一看这张地图你会发现重庆市和四川省仍然是浑然一体,可见该地图的数据应该是有些年头了。
幸运的是,通过谢益辉的这篇博文我们已经可以大体知道该如何操作了,下面就为大家介绍一下具体的步骤。
首先,从这里下载中国地图的GIS 数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf 、bou2_4p.shp 和bou2_4p.shx ),将这三个文件解压到同一个目录下,并在R 中设好相应的工作空间,然后安装maptools 包,运行如下程序:1 2 3 4 5 library(maptools);x=read.shape('bou2_4p.shp');#下文中会继续用到x 这个变量, #如果你用的是其它的名称,#请在下文的程序中也进行相应的改动。
plot(x);【修改】新版本的maptools 包不再提供read.shape()函数,请用readShapePoly()代替。
这时一张完整的中国地图就已经画好了。
但是在实际使用的过程中,我们往往会根据自己的需要对地图中的某些省份着以特定的颜色,这时就可以通过调节plot 命令中的fg 参数来予以实现。
然而为了清楚地说明这部分的内容,我需要插播一段R 绘制地图的原理。
======================传说中的分割线=====================在绘制地图时,每一个省市自治区或者岛屿都是用一个多边形来表示的。
之前的GIS 数据,其实就是提供了每一个行政区其多边形逐点的坐标,然后R 软件通过顺次连接这些坐标,就绘制出了一个多边形区域。
在上面的数据中,一共包含了925个多边形的信息,之所以有这么多是因为一些省份有很多小的附属岛屿。
在这925个多边形中,每一个都对应一个唯一的ID ,编号分别从1到925。
======================传说中的分割线=====================回到刚才的话题,plot 命令中的fg 参数在本例中应该是一个长度为925的向量,其第i 个分量的取值就代表了地图中第i 个多边形的颜色。
一个简单的尝试是运行下面这个命令看看效果:1 p lot(x,fg=gray(924:0/924));【修改】新版本的maptools 包的绘图参数也有所改变,请将fg 换成col 。
于是自然就产生了一个问题:如何获取某一个特定地区的ID ,进而设置我们想要的颜色?事实上,在变量x 中,就已经存储了我们想要的信息。
在R 中输入“x[[2]]”或“x$att.data ”,会得到一个925行7列的数据框,这其实是bou2_4p.dbf 这个文件中存储的信息,之前的read.shape()函数虽然读取的是bou2_4p.shp 文件,但在默认情况下会把dbf 文件的信息也放到变量之中。
对于这个数据框,其行名就是每一个区域的ID 编号,第一列和第二列分别是面积和周长,最后一列是该区域所属的行政区名,其它的列应该也是一些编号性质的变量。
于是,通过查找相应的行政区对应的行名,就可以对fg 参数进行赋值了。
下面是我编的一个函数,用来生成所需的fg 向量:1 2 3 4 5 6 7 getColor=function(mapdata,provname,provcol,othercol){f=function(x,y) ifelse(x %in% y,which(y==x),0);colIndex=sapply(mapdata$att.data$NAME,f,provname);fg=c(othercol,provcol)[colIndex+1];return(fg);}【修改】地图数据的组织形式有所变化,上面函数中的mapdata$att.data$NAME 需要替换为mapdata@data$NAME 。
其中mapdata 是存放地图数据的变量,在上面的例子中就是x ,provname 是需要改变颜色的地区的名称,provcol 是对应于provname 的代表颜色的向量(名称和数字均可),othercol 是其它地区的颜色。
举例如下:1 2 3 provname=c("北京市","天津市","上海市","重庆市");provcol=c("red","green","yellow","purple");plot(x,fg=getColor(x,provname,provcol,"white"));注意provname 一定要写地区的全称,写法可以参照下面这条命令生成的向量: 1 a s.character(na.omit(unique(x$att.data$NAME)));由此生成的向量有33个元素,少了澳门特别行政区,这是这个数据中的一块瑕疵。
在x$att.data 的第899行有一个NA ,不知道它代表的是否就是澳门。
利用类似的方法就可以根据自己的需要对不同的区域进行着色,下面再举一例。
从国家统计局获取2007年我国各地区的人口数据,然后根据人口的多少对各省份进行着色。
程序如下:1 provname=c("北京市","天津市","河北省","山西省","内蒙古自治区",2 3 4 5 6 7 8 9 10 11 12 13 14 "辽宁省","吉林省","黑龙江省","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","广西壮族自治区","海南省","重庆市","四川省","贵州省", "云南省","西藏自治区","陕西省","甘肃省","青海省", "宁夏回族自治区","新疆维吾尔自治区","台湾省","香港特别行政区");pop=c(1633,1115,6943,3393,2405,4298,2730,3824,1858,7625,5060,6118,3581,4368,9367,9360,5699,6355,9449,4768,845,2816,8127,3762,4514,284,3748,2617,552,610,2095,2296,693);provcol=rgb(red=1-pop/max(pop)/2,green=1-pop/max(pop)/2,blue=0);plot(x,fg=getColor(x,provname,provcol,"white"),xlab="",ylab="");其中颜色越深的地方代表人口数越多,反之为人口数越少。
此外,在绘制地图的过程中,还有一个比较有用的参数是recs ,它是一个由多边形ID 组成的向量,表示在地图中只画出这些ID 所代表的区域。
利用这个参数,就可以画出某一部分的地图,例如下面的例子是我国中部六省的地图:1 2 3 4 5 6 7 8 9 getID=function(mapdata,provname){index=mapdata$att.data$NAME %in% provname;ids=rownames(mapdata$att.data[index,]);return(as.numeric(ids));}midchina=c("河南省","山西省","湖北省","安徽省","湖南省","江西省"); plot(x,recs=getID(x,midchina),fg="green",ol="white",xlab="",ylab="");上面的getID()是我编写的一个功能与getColor()类似的函数,用来返回指定省份的ID 。
【修改】新版本的maptools 包的绘图函数已经取消了recs 这个参数,现在要实现这个功能,可以在颜色上把不需要的省份变成白色,其中填充色用col 参数,边界颜色用border 参数。
例如上面的例子可以用下面的函数来实现: 1 2 plot(x, col = getColor(x, midchina, rep("green", 6),"white"), border = "white", xlab = "", ylab = "")最后要说的是,在画出的图上仍然可以用points()函数和text()函数加上点和文字,而maptools包中还提供了一个pointLabel()函数,用来解决文本标签的重叠问题。