深圳人口返鄉模擬圖

#導入數據web

#處理標記線的數據函數

#標記點的數據code

#使用remapC()繪製圖片

#效果圖rem

 

繪製以深圳爲地點,到各個省爲終點的動態遷徙圖,各函數介紹能夠參考本博客的 REmap包介紹及使用,均有詳細介紹,這篇爲實際應用字符串

數據在附件get

  • 導入數據
> library(REmap)
> options(remap.js.web = T)  #將結果保存在工做目錄下,避免R關掉後圖片被刪除,能夠經過getwd()函數的獲得工做目錄,取出圖片

#讀取數據
> MigrateData  <- read.csv('C:\\Users\\Xu\\Desktop\\MigrateDemo.csv',encoding='gb2312',header = F)
> head(MigrateData)
    V1    V2
1 湖南 11580
2 廣西 11207
3 湖北  9235
4 貴州  9689
5 河南  9378
6 江西 12484
> names(MigrateData) <- c('province','values') #命名列

 

  • 處理標記線的數據

MarkLie_Data表示要傳入繪製標記線(此項目就是遷徙路徑線)的數據博客

包含三列,第一列 origin:起點,咱們設置爲深圳,第二列 destination 終點,第三列指定線條顏色color(由於在markLineControl裏設置線條顏色容易出錯)it

> markLine_data <- data.frame(origin = rep("深圳",nrow(MigrateData)), 
+                             destination = MigrateData[1:nrow(MigrateData),1],#MigrateData[c('province')] 或者MigrateData[,1]
+                            
+                             color = rep("#fff",nrow(MigrateData))
+ )

> head(markLine_data)  #看下前幾個效果
  origin destination color
1   深圳        湖南  #fff
2   深圳        廣西  #fff
3   深圳        湖北  #fff
4   深圳        貴州  #fff
5   深圳        河南  #fff
6   深圳        江西  #fff

 

  • 標記點的數據

標記點的設置(此項目就是遷徙的終點),注意,由於是以深圳爲起點,因此咱們作下處理,這樣能突出深圳的位置io

> markPoint_data <- markLine_data[markLine_data!=""] 
> markPoint_data1 <- markPoint_data[which(markPoint_data!="深圳"&markPoint_data!="#fff")]      #做圖時除去深圳這個點及對應的#fff字符串

 

  • 使用remapC()繪製

該函數主要用於繪製分塊區域熱力,如在地圖上顯示不一樣省份熱力效果

> remapC(MigrateData,
+        title = "深圳人口返鄉模擬圖", #標題設置
+        subtitle ='2018年春節',  #副標題
+        
+        #主題進行設置
+        theme = get_theme(  
+          theme = 'Dark',#背景色
+          lineColor = '#FFFFFF' ,#對應爲map圖裏面遷徙線條的顏色
+          titleColor = "#fff",
+          borderColor = "#999999",  #邊界顏色
+          regionColor = "#000000",  #區域顏色
+          pointShow = F,   #是否展現各省會,城市所在點,設置爲True時展現
+          pointColor = "gold" #設置上述點的顏色
+        ),
+        color=c('#CD0000','#FFEC8B'),   #顏色漸變方案,對應每一個地區不一樣的value
+        
+        #遷徙路徑的數據傳進來
+        markLineData = markLine_data,
+        #設置線的樣式
+        markLineTheme = markLineControl(
+          color = 'white',
+          lineWidth =2,
+          lineType = 'dashed',
+          effect = T #不寫默認也爲T,不過當線條過多時不會動效
+        ),
+        
+        #標記點的數據傳進來
+        markPointData=markPoint_data1,   
+        #設置點樣式
+        markPointTheme=markPointControl(  #經過markPointControl來設置樣式
+          symbolSize=13,         #樣式大小
+          effect=T,              #effctt =T 表示開啓動效
+          effectType="scale",    
+          color="white"          #沒有設置smybol 類型
+        )
+        
+        
+ )
  • 效果圖

相關文章
相關標籤/搜索