一、获取经纬度坐标函数
1、get_city_coord():获得城市的位置信息
2、get_geo_position():获得城市向量的位置信息
二、地图函数
1、热力图:remapH()
remapH(data,
maptype = 'china',
theme = get_theme("Dark"),
blurSize = 30,
color = c('blue', 'cyan', 'lime', 'yellow', 'red'),
minAlpha = 0.05,
opacity = 1,
...)
参数解释
data:数据框,包括经度、纬度、密度
maptype:地图的类型,如'china'、'world'以及中国的省份
theme:主题,控制地图的颜色
blurSize:热力效果范围,默认30
color:热力图的渐变颜色
minAlpha:如果密度值小雨最小alpha,热力图会把这个密度设为最小alpha,从而确保密度小的点在地图上也能够看出来
opacity:热力图的不透明度,默认值为1
2、方位图或迁徙图:remapB()
remapB(center = c(104.114129,37.550339),
zoom = 5,
color = "Bright",
title = "",
subtitle = "",
markLineData = NA,
markPointData = NA,
markLineTheme = markLineControl(),
markPointTheme = markPointControl(),
geoData = NA)
参数解释
center:地图的中心位置
zoom:地图的大小,
color:地图的颜色
title:地图标题
subtitle:次标题
markLineData:绘制迁徙图时用此函数
markPointData:绘制方位图时用此函数
3、填充地图:remarkC()
remapC(data,
maptype = 'china',
markLineData = NULL,
markPointData = NULL,
color = c('#1e90ff','#f0ffff'),
theme = get_theme("Bright"),
title = "",
subtitle = "",
markLineTheme = markLineControl(),
markPointTheme = markPointControl(),
geoData = NA,
mindata = NA,
maxdata = NA)
参数解释
data:数据框,包括位置名和对应的值
maptype:'china'、'world'、或中国的省份
markLineData:data for mark line
markPointData:data for mark point
color:vector of the color, if the length of color is 1, white will be added to the color.
三、可视化案例
案例A、remapH()函数绘制热力图
1、生成城市名单
library(REmap)
cities <- mapNames('zhejiang')
cities
[1] "丽水市" "杭州市" "温州市" "宁波市" "舟山市"
[6] "台州市" "金华市" "衢州市" "绍兴市" "嘉兴市"
[11] "湖州市"
2、获取城市经纬度
city_Geo <- get_geo_position(cities)
city_Geo
lon lat city
1 119.9296 28.47328 丽水市
2 120.2155 30.25308 杭州市
3 120.7065 28.00109 温州市
4 121.6286 29.86603 宁波市
5 122.2136 29.99091 舟山市
6 121.4274 28.66219 台州市
7 119.6534 29.08464 金华市
8 118.8666 28.97555 衢州市
9 120.5855 30.03637 绍兴市
10 120.7635 30.75097 嘉兴市
11 120.0945 30.89896 湖州市
生成一系列密度
percent <- runif(11, min = 0.25, max = 0.9)
percent
[1] 0.5792101 0.5989498 0.4184216 0.7719849
[5] 0.7556479 0.6388627 0.6520455 0.5641716
[9] 0.4279690 0.8441732 0.6033032
合并成绘图数据
data_all <- data.frame(city_Geo[, 1:2], percent)
data_all
lon lat percent
1 119.9296 28.47328 0.5792101
2 120.2155 30.25308 0.5989498
3 120.7065 28.00109 0.4184216
4 121.6286 29.86603 0.7719849
5 122.2136 29.99091 0.7556479
6 121.4274 28.66219 0.6388627
7 119.6534 29.08464 0.6520455
8 118.8666 28.97555 0.5641716
9 120.5855 30.03637 0.4279690
10 120.7635 30.75097 0.8441732
11 120.0945 30.89896 0.6033032
3、绘制热力图
result <- remapH(data_all,
maptype = '浙江',
theme = get_theme('Dark'),
blurSize = 35,
color = 'red',
minAlpha = 10,
opacity = 1)
4、绘制出来的地图如下(经纬度坐标好像不太精确):
案例B、remapB()函数绘制方位图
1、获取目标大学名单
university <- c('浙江财经大学', '浙江工商大学', '浙江理工大学', '杭州电子科技大学')
2、获取目标大学经纬度
uni_geo <- get_geo_position(university)
uni_geo
lon lat city
1 120.1620 30.32866 浙江大学城市学院
2 120.3962 30.31544 浙江工商大学
3 120.0933 30.30869 浙江大学
4 120.3495 30.32055 杭州电子科技大学
3、绘制方位图
uni_result <- remapB(markPointData = data.frame(uni_geo$city),
markPointTheme = markPointControl(symbol = 'circle',
effect = T,
symbolSize = 12,
color = 'red'),
geoData = uni_geo
)
4、绘制出来的地图效果如下(动态):
案例C、remapB()函数绘制连线图
1、假设目标城市、获取经纬度信息
location <- c('杭州市','温州市','丽水市')
loc_geo <- get_geo_position(location)
loc_geo
lon lat city
1 120.2155 30.25308 杭州市
2 120.7065 28.00109 温州市
3 119.9296 28.47328 丽水市
2、构造起始点信息
start_point <- location[2:3]
terminal_point <- location[c(3,1)]
data_DF <- data.frame(start_point, terminal_point)
data_DF
start_point terminal_point
1 温州市 丽水市
2 丽水市 杭州市
3、绘制地图
loc_result <- remapB(
center = get_city_coord('杭州市'),
color = 'midnight',
markLineData = data_DF,
markLineTheme = markLineControl(effect = T,
smoothness = 0,
symbolSize = c(3,3)),
geoData = loc_geo)
4、绘制的连线图效果如下:
案例D、remapB()函数绘制迁徙图
1、虚构一份数据
start_point <- rep('温州市',2)
destination <- c('丽水市', '杭州市')
data_DF <- data.frame(start_point, destination)
data_DF
start_point terminal_point
1 温州市 丽水市
2 丽水市 杭州市
2、绘制迁徙图
result <- remap(data_DF, theme = get_theme('bright'))
3、迁徙图效果如下:
案例E、remapC()函数绘制填充图
1、虚构城市名单及对应值
city <- mapNames('zhejiang')
value <- runif(11, min = 1, max = 100)
data_DF <- data.frame(city, value)
data_DF
city value
1 丽水市 3.509584
2 杭州市 61.542740
3 温州市 12.679259
4 宁波市 67.178476
5 舟山市 24.896772
6 台州市 18.937361
7 金华市 73.125014
8 衢州市 30.247672
9 绍兴市 48.873504
10 嘉兴市 44.157908
11 湖州市 92.731507
2、绘制填充图:
result <- remapC(data_DF,
title = '浙江省热力图',
maptype = 'zhejiang',
color = 'red',
theme = get_theme('Dark'),
maxdata = 100,
mindata = 1)
3、效果如下:
参考链接:https://zhuanlan.zhihu.com/p/23247602
|
请发表评论