一、首先绘画出地图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"
);
热力地图即绘制成功: