在科研工作中,经常会遇到需要在地图上展示数据的情况,今天分享一下如何使用R语言可视化地图数据

# 先安装和导入R包,这里使用了本地地图数据,所以只导入maps包即可
# install.packages("maps")
library(maps) # 设置文件路径及导入数据,导入的china.rda数据会在文末链接分享
setwd("D:/1/小红书/R语言/画地图/")
load("china.rda") # 把导入的数据赋值给china_map
# 因为后续代码使用了china_map ,所以这里有一个赋值,也可以直接使用china作为变量名
china_map <- china # 这里是一个设置颜色的函数
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);
} #输出到默认路径,并命名为a.png
png("a.png", width = 1000, height = 1000) # 设置展示的各个省份的名称
provname=c("北京市","天津市","河北省","山西省","内蒙古自治区",
"辽宁省","吉林省","黑龙江省","上海市","江苏省",
"浙江省","安徽省","福建省","江西省","山东省",
"河南省","湖北省","湖南省","广东省",
"广西壮族自治区","海南省","重庆市","四川省","贵州省",
"云南省","西藏自治区","陕西省","甘肃省","青海省",
"宁夏回族自治区","新疆维吾尔自治区","台湾省",
"香港特别行政区");
# 与各个省份对应的要展示的数据
pop=c(36, 22, 14, 11, 11,
12, 100, 100, 0, 11,
71, 21, 11, 100, 18,
54, 18, 41, 38,
91, 0, 27, 60, 81,
69, 2, 60, 30, 54,
69, 10, 1, 20); # 因为需要绘制图例,所以这里设置了绘图的布局
nf <- layout(matrix(c(rep(1, 5), 0,
rep(1, 5), 2,
rep(1, 5), 0,
rep(1, 5), 0,
rep(1, 5), 0,
rep(1, 5), 0),6,6,byrow=TRUE),
widths =c(2,2,2,2,2,1), heights = c(1,2.5,1,1,1))
layout.show(nf) # 依旧是设置颜色
provcol=rgb(red=pop*2.55/255,green=1-pop*2.55/255,blue=0); # 绘图,这里绘制地图的主题部分
plot(china_map,col=getColor(china_map,provname,provcol,"white"),
xlab="",ylab=""); # 设置省会城市坐标
dat = read.csv(text = "城市,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")
# 在各省份省会城市处标点及标出省份名称
points(dat$jd, dat$wd, pch = 19, col = rgb(0, 0, 0, 0.5))
text(dat$jd, dat$wd, dat[, 1], cex = 2,
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))
# 设置绘图边框信息
par(mar=c(1,0.5,1,4),cex=1)
col=rgb(red=c(1:100)*2.55/255,green=1-c(1:100)*2.55/255,blue=0); # 绘制图例
barplot(as.matrix(rep(1,100)),col=sort(col,dec=F),horiz=F,axes=F,border = NA )
axis(4,seq(0,100,by=20),seq(0,100,by=20), cex=2)
dev.off()

图例的china.rda数据及绘图代码可在以下链接下载:
链接: https://pan.baidu.com/s/1NsX__i9-A6t4XqVefFnGUA 提取码: 9h5g

使用R语言可视化地图数据的更多相关文章

  1. R语言分析朝阳医院数据

    R语言分析朝阳医院数据 本次实践通过分析朝阳医院2016年销售数据,得出“月均消费次数”.“月均消费金额”.“客单价”.“消费趋势”等结果,并据此作出可视化图形. 一.读取数据: library(op ...

  2. [译]用R语言做挖掘数据《二》

    数据探索 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: ...

  3. R语言可视化学习笔记之添加p-value和显著性标记

    R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline   上篇文章中提了一下如何通过ggpubr ...

  4. R语言实现金融数据的时间序列分析及建模

    R语言实现金融数据的时间序列分析及建模 一 移动平均    移动平均能消除数据中的季节变动和不规则变动.若序列中存在周期变动,则通常以周期为移动平均项数.移动平均法可以通过数据显示出数据长期趋势的变动 ...

  5. R语言处理Web数据

    R语言处理Web数据 许多网站提供的数据,以供其用户的消费.例如,世界卫生组织(WHO)提供的CSV,TXT和XML文件的形式的健康和医疗信息报告.基于R程序,我们可以通过编程提取这些网站的具体数据. ...

  6. 利用R语言进行交互数据可视化(转)

    上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化.现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享. rCharts包 说起R语言的交互包,第一个 ...

  7. R语言︱处理缺失数据&&异常值检验、离群点分析、异常值处理

    在数据挖掘的过程中,数据预处理占到了整个过程的60% 脏数据:指一般不符合要求,以及不能直接进行相应分析的数据 脏数据包括:缺失值.异常值.不一致的值.重复数据及含有特殊符号(如#.¥.*)的数据 数 ...

  8. R语言XML格式数据导入与处理

    数据解析 XML是一种可扩展标记语言,它被设计用来传输和存储数据.XML是各种应用程序之间进行数据传输的最常用的工具.它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强 ...

  9. R语言Data Frame数据框常用操作

    Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的. Data Frame每一列有列名,每一行也可 ...

  10. R语言和大数据

    #安装R语言R3.3版本会出现各种so不存在的问题,退回去到R3.1版本时候就顺利安装.在安装R环境之前,先安装好中文(如果没有的话图表中显示汉字成框框了)和tcl/tk包(少了这个没法安装sqldf ...

随机推荐

  1. 结构体(C语言)

    目录 1. 结构体类型的声明 1.1 结构体回顾 1.1.1 结构的声明 1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明 1.3 结构的自引用 2. 结构体内存对齐 2.1 对齐规则 2 ...

  2. 最逼真的AI换脸软件,Pluse下载介绍(可直播)

    Pluse是基于人工智能的实时AI换脸工具,可以在无需任何前期数据训练的情况下,通过一张照片快速替换视频中的人脸,它支持高分辨率细节重建.色彩矫正,并能实时替换多目标人脸,非常适合娱乐社交.影视制作和 ...

  3. Nginx增加网页认证功能

    Nginx增加网页认证功能 增加认证功能模块 ngx_http_auth_basic_module 模块实现让访问者,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但 ...

  4. 强化学习训练过程中的过度拟合(overfitting)

    相关: A.I. Learns to Drive From Scratch in Trackmania 本文讨论的是强化学习中的过度拟合问题,要知道强化学习中的过拟合和其他的监督.无监督学习的过拟合不 ...

  5. 17.Kubernetes搭建高可用集群

    Kubernetes搭建高可用集群 前言 之前我们搭建的集群,只有一个master节点,当master节点宕机的时候,通过node将无法继续访问,而master主要是管理作用,所以整个集群将无法提供服 ...

  6. mobile频段要查找、设置并获取相关参数,该怎么破?

    ​ 今天我们一起来学习查找和设置mobile频段,并获取相关参数. 一.mobile概述 1.1 简介 "4G mobile"指的是第四代移动通信技术,常用于描述通过4G网络进行的 ...

  7. 【THUPC 2024 初赛】 E 转化

    [THUPC 2024 初赛] 转化 我都能做出来,那就是大水题了. 思路 首先我们要确定最大可以变色的球的数量 \(tot\). 有如下两个贪心步骤: 所有颜色使用分裂操作,并更新 \(a_i\). ...

  8. 黑盒视角下的RESTful API安全测试

    目录 前言 关于OWASP API TOP 10 REST API接口测试思路 接口权限测试 接口校验测试 接口滥用测试 总结 前言 RESTful API(或称RESTful Web API)在线开 ...

  9. RMI原理及常见反序列化攻击手法

    这是对网上一些文章和视频的再总结,可以参考以下资料,师傅们分析的都挺详细了,我这就是记录一下师傅们写的博客. 廖雪峰 - 给了简单的小例子,了解即可 B站视频(白师傅) 先知社区(小阳师傅) - 讲的 ...

  10. Jenkins篇-安装与使用

    Jenkins是一个开源自动化服务器,可以自动执行持续集成和交付软件所涉及的重复技术任务.Jenkins是基于Java的,可以从Ubuntu软件包安装,也可以通过下载和运行其Web应用程序存档(WAR ...