如何在R中绘制热力地图

时间:2023-02-04 23:33:17

一、首先绘画出地图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)

绘制好的地图:
如何在R中绘制热力地图

二、在地图上增加热力地图
热力地图:
以特殊高亮的形式,显示数据地理分布情况的图形。
热力地图绘制函数:
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"
);

热力地图即绘制成功:
如何在R中绘制热力地图