前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在R中绘制热力地图

如何在R中绘制热力地图

作者头像
Erin
发布2018-01-09 11:02:44
3.2K0
发布2018-01-09 11:02:44
举报
文章被收录于专栏:大数据风控

一、首先绘画出地图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 字体的缩放大小

代码实现:

代码语言:javascript
复制
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 图形的背景色

代码实现:

代码语言:javascript
复制
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"
);

热力地图即绘制成功:

这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年07月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档