如何在R中绘制热力地图

来源:互联网 发布:js轮播图思路 编辑:程序博客网 时间:2024/05/01 02:13

一、首先绘画出地图map
地图(map)
按一定的比例运用符号、颜色、文字注记等描绘显示地球表面的自然地理、
行政区域、社会经济状况的图形。
地图绘制思路:
① 绘制需要展示的地图,获取地图对象,获取每个区域的名字以及顺序;
② 在每个区域的名字和顺序后面,加上我们需要展示的数据以及经纬度;
③ 根据数据的大小,设置每个区域展示的颜色的深浅,以区分每个区域;
√ 对数据进行标准化处理,使用[0,1]值,代表颜色的透明度,以控制颜色深浅;
④ 根据颜色进行填色
⑤ 根据经纬度进行标注地图的名字

那么如何绘制地图呢?
首先绘制地图需要的包:
install.packages(“maps”)
install.packages(“mapdata”)
地图函数:
map(database,fill=FALSE,col)
databae 地图的数据库
fill 是否填充,默认为不填充地图区域
col 填充的颜色,为RGB颜色

地图标注函数:
text(x,y,text,cex)
x x轴的坐标,经度
y y轴的坐标,纬度
text 要展示的文字
cex 字体的缩放大小

代码实现:

install.packages("maps")install.packages("mapdata")library(maps)library(mapdata)#第一步,绘制需要展示的地图,获取地图对象,获取每个区域的名字以及顺序;m <- map("state");m$names#第二步,在每个区域的名字和顺序后面,加上我们需要展示的数据以及经纬度;data <- read.csv('data.csv', stringsAsFactors=FALSE)#第三步、根据数据的大小,设置每个区域展示的颜色的深浅,以区分每个区域;numbers <- data$sales;#将销售额进行标准化scale <- (numbers-min(numbers))/(max(numbers)-min(numbers))#使用标准化后的额数据,进行透明度的设置colors <- rgb(0, 0.3, 1, scale);#第四步,根据颜色进行填色map("state", fill=TRUE, col=colors);#第五步、根据经纬度进行标注地图的名字。text(data$x, data$y, data$name, cex = 0.6) 

绘制好的地图:
这里写图片描述

二、在地图上增加热力地图
热力地图:
以特殊高亮的形式,显示数据地理分布情况的图形。
热力地图绘制函数:
symbols(x,y,circles,inches=TRUE,add=FALSE,bg)
x x轴的坐标,经度
y y轴的坐标,纬度
circles 圆形的半径,设置为显示数值的大小
inches 缩放比例,将圆形的大小缩放到合适程度
add 是否追加到图形中,在地图上增加图形,需要设置为TRUE
bg 图形的背景色

代码实现:

library(maps)library(mapdata)#根据得到的名称,按顺序把我们的数据填入其中,#这里需要进行数据处理,一般需要手工处理数据。data <- read.csv('data.csv', stringsAsFactors=FALSE)#根据数量,我们填充颜色numbers <- data$sales;#将销售额进行标准化scale <- (numbers-min(numbers))/(max(numbers)-min(numbers))#使用标准化后的额数据,进行透明度的设置#数据越小,颜色越透明colors <- rgb(0, 0.5, 1, scale);#绘制地图,并且,填充颜色map("state", fill=TRUE, col=colors);#给地图加上地名标记text(data$x, data$y, data$name, cex = 0.6) symbols(  data$x,   data$y,   circles=data$sales,   add=TRUE,  inches=0.08,  bg="#FF000055");symbols(  data$x,   data$y,   circles=data$sales,   add=TRUE,  inches=0.16,  bg="#FF000055");

热力地图即绘制成功:
这里写图片描述

原创粉丝点击