#REmap包簡介javascript
#包安裝css
#remapH函數html
#remapH案例java
#get_theme函數git
#remapC函數github
#remapC案例dom
REmap包是R與echart的對接,在R裏調用echar的api直接做圖,函數特徵更加簡單,繪圖過程更加方便快捷,若是要個性化繪製能夠修改REmap包源碼, 須要有必定的javascript/css/html 函數
remapH函數:該函數主要用於繪製熱力效果圖,如在地圖上繪製不一樣密度的熱力效果
remapC函數:該函數主要用於繪製分塊區域熱力,如在地圖上不一樣省份熱力效果
remapB函數:該函數主要基於百度地圖背景,作遷徙,通勤效果圖
markLineControl,markPointControl,get_theme這三個函數主要用於控制在map圖上畫線, 打點以及主題的各類樣式,如顏色,效果,粗細等。
a、https://cran.r-project.org/ 上下載對應系統及版本的R軟件,下文環境爲win64的R
b、這次用到的包爲REmap,其掛靠在https://github.com/ 上,只需運行R,依次輸入:
(1)Install.packages(「devtools」)
此時會談出一個界面,選擇china便可,下載完成後,再輸入:
(2)Library(devtools)
(3)Install_github(「Lchiffon/REmap」),稍等片刻下載完成後,再輸入:
(4)library(REmap)
配置完成
注意:1.若是安裝devtools包過程提示沒有digest包error,則再輸入install.packages(「digest」),再重複上述3過程
remapH(data, maptype = 'china', theme = get_theme("Dark"), blurSize = 30, color = c('blue'), minAlpha = 0.05, opacity = 1, )
data:要傳入的數據,數據爲三列,第一列爲經度lon,第二列爲維度lat,第三列爲密度/機率prob
maptype: 要繪製的地址類型,如中國地圖maptype=‘china’,世界地圖maptype=‘world’
theme: 主題,設置該參數後無需設置get_theme裏其餘參數,下文介紹
blurSize: 爲熱力效果的泛化範圍,可調整熱力點中心的擴散程度
color: 熱力的漸變顏色
minAlpha:熱力點的展現閾值,對應data中的prob列,做圖時各點密度會對比minAlpha,以凸顯不一樣密度所展現的不一樣熱力分佈
opacity:透明度,調整熱力圖的透明度
remapH案例
> library(REmap) > options(remap.js.web=T) > data<- read.csv(file="C:\\Users\\Xu\\Desktop\\cityvaluetop10.csv",header=T) > theme1 <- get_theme(theme = "none", + lineColor = "white", + backgroundColor = "#CCCCCC", + titleColor = "#fff", + borderColor = "white", + regionColor = "Silver", + labelShow = T, + pointShow = F, + pointColor = "gold" + ) > remapH(data, #效果以下圖 + maptype = 'china', + theme = theme1, + blurSize = 70, + color = "red", + minAlpha = 10, + opacity = 1 + ) Save img as: ID_20171104005314_62482.html
get_theme(theme = "Dark", lineColor = "Random", backgroundColor = "#1b1b1b", titleColor = "#fff", borderColor = "rgba(100,149,237,1)", regionColor = "#1b1b1b", labelShow = T, pointShow = F, pointColor = "gold" )
theme: 主題,設置該參數後無需設置get_theme裏其餘參數,可選「Dark」,「Sky」,「blue」,「none」四中,當設置get_theme其餘參數時,須要將該參數設置爲「none」
lineColoe:線條顏色,對應爲map圖裏面遷徙線條的顏色
backgroundColor:圖片的背景色,支持16進制顏色輸入,也支持rgb()函數和rgba()
titleColor:標題的顏色,設置同上
borderColor:地圖中各省、市邊界顏色
regionColor:地圖中各區域顏色,各省份和市
labelShow:否展現各省、市名字,設置爲True時展現
pointShow:是否展現各省會,城市所在點,設置爲True時展現
pointColor:設置上述點的顏色
該函數主要用於繪製分塊區域熱力,如在地圖上顯示不一樣省份熱力效果
remapC(data, maptape = 'china' markLineData = NULL, markPointData = NULL, color = c('#le90ff','#f0ffff'), them = get_theme('Bright'), title = "", subtitle = "", markLineTheme = markLineControl(), markPointTheme = markPointControl(), geoData = NA, mindata = NA, maxdata = NA) )
data: 表示要傳入的數據,該數據有2列,第一列爲city(各城市,省份名字),第二列爲value(第一列城市對對應的數值)
maptype:要繪製的地址類型,如中國地圖maptype=‘china’,世界地圖maptype=‘world’
markLineData:要繪製的線條數據,該數據前兩列爲必須,第一列爲origin(出發地),第二列爲destination(目的地),此外建議在第三列指定線條顏色,由於在markLineControl裏設置線條顏色容易出錯
markPointData:要繪製的點的數據,該數據爲一列,該列爲要繪製點的名字,此外建議在第二列指定點的顏色,由於在markLineControl裏設置點顏色容易出錯
color:熱力顏色的漸變,第一個爲起始顏色,第二個爲終止顏色
theme:主題,設置該參數後無需設置get_theme裏其餘參數,可選「Dark」,「Sky」,「blue」,「none」四中,當設置get_theme其餘參數時,須要將該參數設置爲「none」
title:標題
subtitle:副標題
markLineTheme:控制線條的樣式參數,該參數由markLineControl函數傳入(後文介紹)
markPointTheme:控制點的樣式參數,該參數由markPointControl函數傳入(後文介紹)
geoData:爲上述點,線涉及到的城市,省份的經緯度,該數據爲三列,第一列lon(經度),第二列lat(維度),第三列city(城市或省份名字)
mindata,maxdata:熱力圖的閾值,低於或高於該值將不會被展現出來
markLineControl函數
markLineControl(symbol = c('none', 'arrow'), symbolSize = c(2,4), smooth = T, smoothness = 0.2, effect = T, lineWidth = 1, lineType = 'solid', color = "Random" )
symbol:控制要繪製線條兩端形狀,第一個爲起點,第二個爲終點,可選樣式有:’pin’, ‘circle’,’rectangle’,’triangle’,’diamond’,’emptyCircle’,’emptyRectangle’,’ emptyTriangle’,’emptyDiamond’,’heart’,’droplet’,’arrow’,’tar’
symbleSize:控制上述參數形狀大小,一樣有兩個值
smooth: 控制線條是否平滑,爲T時,smoothness參數纔有效
smoothness:控制線條的平滑度,爲0時是直線
effect:控制線條是否呈現動態效果,爲T時顯示動態效果,須要注意的是當線條過多時effect參數無效,不會顯示動效
linewidth:控制線條的粗細
lineType:控制線條的形狀,可選樣式有:’solid’, ‘dotted’,’dashed’
color:控制線條的顏色,不建議在此處設置顏色
markPointControl函數
markPointControl(symbol = 'emptyCircle', symbolSize = "Random", effect = T, effectType = 'scale', color = "Random" )
symbol:控制點的形狀,可選樣式有:’pin‘,’circle’,’rectangle’,’triangle’,’diamond’,’emptyCircle’, ’emptyRectangle’,’emptyTriangle’,’emptyDiamond’,’heart’,’droplet’,’arrow’,’tar’
symbolSize:控制上述參數形狀大小
effect:控制點是否呈現動態效果,爲T時顯示動態效果,須要注意的是當點數目過多時effect參數無效,不會顯示動效
effectType:控制點的動效呈現形式,可選樣式有:’scale’ ,’bounce’
color:控制點的顏色,不建議在此處設置顏色
remapC案例
> library(REmap) > options(remap.js.web=T) > data<- read.csv(file="C:\\Users\\Xu\\Desktop\\cityvaluetop10.csv",header=T) > theme1 <- get_theme(theme = "none", + lineColor = "white", + backgroundColor = "#CCCCCC", + titleColor = "#fff", + borderColor = "white", + regionColor = "Silver", + labelShow = T, + pointShow = F, + pointColor = "gold" + ) > remapH(data, + maptype = 'china', + theme = theme1, + blurSize = 70, + color = "red", + minAlpha = 10, + opacity = 1 + ) Save img as: ID_20171104005427_69796.html > library(REmap) > options(remap.js.web=T) > cityvalue <- read.csv(file="C:\\Users\\Xu\\Desktop\\cityvalue.csv",header=T,encoding="gb2312") > theme1 <- get_theme(theme = "none", + lineColor = "red", + backgroundColor = "white", + titleColor = "#fff", + borderColor = "white", + regionColor = "grey", + labelShow = F, + pointShow = F, + pointColor = "gold" + ) > markline_data <- data.frame(origin=rep("廣州",10), + destination=c("廣西","湖南","湖北","貴州", + "河南","江西","福建","北京", + "浙江","四川"), + color=rep("red",10) + ) > markpoint_data <- data.frame(point=c("廣西","湖南","湖北","貴州","河南", + "江西","福建","北京","浙江","四川"),color=rep("white",10)) > markline_control <- markLineControl(symbolSize=c(0,0), + smooth=F, + smoothness=0, + effect=F, + lineWidth=1, + lineType="solid", + ) > markpoint_control <- markPointControl(symbol = 'Circle', + symbolSize = 10, + effect = T, + effectType = 'scale', + ) > remapC(cityvalue, + maptype = 'china', + markLineData = markline_data, + markPointData = markpoint_data, + color = c('#888888','#CDCDCD'), + theme = theme1, + title = "", + subtitle = "", + markLineTheme = markline_control, + markPointTheme = markpoint_control, + #geoData = NA, geoData參數,此處能夠省略該參數的緣由是由於做圖涉及到城市以及省份數據,remapC函數都會調用內置get_geo_position函數獲取對應經緯度,而這隻有在數據是城市或省份時纔有效 + #mindata = NA, + #maxdata = NA + ) Save img as: ID_20171104010458_132853.html There were 11 warnings (use warnings() to see them)
知識整理來自
[1]R語言中文社區
[2]知乎