话说有那么一天。全能打杂·小洁需要写一个全国巡讲推广软文,打开原来的推文看到这样一个路径图
(之前做的,但是忘记该怎么做了)
两个月过去了,又去了几个城市,图该更新了,这可咋办。向来不喜欢走回头路,于是就另寻他法了。
胡乱搜索一下,发现R语言可以做
!
直接上代码
0.准备R包
if(!require(devtools)) install.packages("devtools")
library(devtools)
if(!require("REmap")) install_github('lchiffon/REmap')
library(REmap)
1.以珠海为起点的足迹图
options(remap.js.web=T)
destination<- c("重庆","济南","北京","北京","广州","上海",
"郑州","西安","武汉","成都","珠海","北京","杭州","长春")
origin <- rep("珠海",times=length(destination))
map_data<- data.frame(origin,destination)
map_out1<- remap(mapdata=map_data,
title ="全国巡讲足迹",
subtitle ="生信技能树",
theme =get_theme(theme='Dark')
)
plot(map_out1)
超燃的!动态的!交互式的!
2.首尾相连的路径图
origin<- c("珠海","重庆","济南","北京","北京","广州","上海",
"郑州","西安","武汉","成都","珠海","北京","杭州","长春")
#终点数据:
destination<- c(origin[2:length(origin)],origin[1])
map_data<- data.frame(origin,destination)
map_out1<- remap(mapdata=map_data,
title ="全国巡讲足迹",
subtitle ="生信技能树",
theme =get_theme(theme='Dark')
)
plot(map_out1)
酷毙了好吗!不发朋友圈对的起自己吗?
3.热力图
heatmap = sampleData()
Citys<- data.frame(city = origin,prob=sample(heatmap$prob,length(destination),replace = T))
position<-get_geo_position(as.character(Citys$city )) #获取城市所在的经纬度
map_out1<-merge(position,Citys,by = "city")
remapH(title = "生信技能树全国巡讲",
map_out1[,2:4],
maptype = 'china',
blurSize = 25,
minAlpha = 1) #数据包含3列即经度、维度、密度
这个是静态的,但也挺好看的~期待以后去更多城市,为了更美好的明天而奋斗!
4.常见问题
(1)R包安装问题
代码在windows上运行大多会遇到一个问题:
我上课是提倡不要更新的,除非一直报错。先选
3
(不更新),紧接着library(REmap)
检验是否安装成功,不成功就重新安装选择1
(更新全部)吧。
小郭同学测试过程中还遇到了这个:
这个报错我曾讲过如何处理,就是手动删除电脑上旧包的整个文件夹,然后重装
:https://www.jianshu.com/p/ef81c27656c8
经常遇到,如果你用mac 找不到安装路径
,请看这里:https://www.jianshu.com/p/a9a055172188
(2)经纬度不识别
有可能会出现这样一个warning:
警告信息:
1: In get_city_coord(out_list[i], ...) : Please use your own baidu API!
Set it using: options(remap.ak = "XXXXX")
http://lbsyun.baidu.com
然后画出这样的错误图:
就是经纬度识别错误了,电脑本身的问题
测试了两个windows电脑,一个刚开始能运行,后来就不识别了。另一个更惨,直接就是出现这种不识别的图。
我的解决方案是:拿mac试试!
(然后就成功了)反正不是代码的问题,API如何设置我没有搜到,放弃治疗了~
网友评论