您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何使用R語言制作熱力數據地圖,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
今天跟大家分享的是使用R語言制作熱力數據地圖
也許很多小伙伴兒對于R語言還很陌生,感覺很神秘。
確實,R語言的數據地圖需要使用很長的代碼來寫。但是就像我們學習高數和微積分一樣,再復雜再龐大的公式,都會有計算軟件幫你代勞,而你只需要知道怎么調整參數、控制路徑,并且明白每一句代碼的實現功能就可以了,無需記住每一串代碼的詳細內涵和寫法。
而且接下來要寫的諸多代碼,大部分都并非自己寫的,而是從網上拼湊,經過整理與匯總后的。坦白的說,絕大部分自己都寫不出來,語法也很費解,只是勉強知道大概可以實現什么功能。
但是我依然能夠達到自己的目的,自定義所需的指標數據,自定義輸出的數據地圖的填充顏色、標簽等外觀和格式。
首先介紹小魔方的R語言系統配置環境:
R version 3.2.3
RStudio Version 0.99.484
因為R語言原始編輯器的操作不夠靈活,所以我將在R的第三方編譯器:R Studio中完成以下的數據地圖代碼操作。
在正式開始之前,必須確保你的R語言環境中已經安裝以下包:
ggplot2
plyr
maptools
如果還未安裝,需要先安裝:install.packages("ggplot2","plyr","maptools")
然后下載地圖的作圖數據文件:(該文件獲取途徑比較難,所以我會直接共享在網盤里,點擊文末閱讀原文獲取。)
獲取該作圖數據文件包之后解壓放在C盤根目錄下。(這路徑比較短,易于引用,無需再修改代碼引用路徑。)
下面是正式作圖步驟:
1、加載所需要的R包:
library(ggplot2)
library(plyr)
library(maptools)
2、讀入作圖數據:
china_map = readShapePoly("c:/rstudy/bou2_4p.shp")
你可以通過代碼查看該數據文件的數據結構:
summary(china_map)
3、整理與合并作圖作圖數據
x <- china_map@data #讀取行政信息
xs <- data.frame(x,id=seq(0:924)-1) #含島嶼共925個形狀
china_map1 <- fortify(china_map) #轉化為數據框
china_map_data <- join(china_map1, xs, type = "full") #合并兩個數據框
以上四句代碼是從原始地圖數據文件中提取地圖經緯度坐標和行政區劃名稱并合并成一個數據文件:china_map_data
通過代碼:head(china_map_data)
你可以查看到該合并文件的內部結構:
4、讀入指標數據
mydata <- read.csv("c:/rstudy/geshengzhibiao.csv") #讀取業務指標數據,csv格式
以上的geshengzhibiao.csv數據文件是我單獨使用excel完成數據輸入并另存為.CSV格式(與之前下載的地圖數據文件存放在一個地方,便于引用)的指標數據文件,也就是我們以后用來輸入自己業務指標的數據文件。(最后共享的文件里包含此.CSV文件,你只需要使用excel打開,修改為自己需要的指標數據,并繼續存為.CSV格式就可以了)
數據結構如下:
china_data <- join(china_map_data, mydata, type="full") #合并兩個數據框
5、輸出地圖(這個代碼有點復雜,不過你只需要理解其中幾個重要環節參數就OK了)
ggplot(china_data, aes(x = long, y = lat, group = group,fill = zhibiao)) +
geom_polygon(colour="grey40") +
scale_fill_gradient(low="white",high="steelblue") + #指定漸變填充色,可使用RGB
coord_map("polyconic") + #指定投影方式為polyconic,獲得常見視角中國地圖
theme( #清除不需要的元素
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.position = c(0.2,0.3)
) #【無省名:】
以上代碼及其輸出的熱力數據地圖是使用R中的經典數據可視化包——ggplot2包完成的。其中通過多個圖層疊加(圖層之間用“+”實現連接)。
其中輪廓線顏色是使用geom_polygon(colour="grey40")完成的;
填充的漸變色是通過制定漸變色范圍實現的:scale_fill_gradient(low="white",high="steelblue")
指標引用是通過fill = zhibiao實現的,其他的語句是控制圖層元素(一些無傷大雅的元素)
以上版本地圖是無標簽版的熱力數據地圖。
下面的代碼是給地圖添加省份標簽和數值指標:
province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") #讀取省會城市坐標
ggplot(china_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=zhibiao),colour="grey60")+
scale_fill_gradient(low="white",high="steelblue") +
coord_map("polyconic") +
geom_text(aes(x = jd,y = wd,label = province), data =province_city)+
theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank()
) #【帶省標簽:】
語法上略有不同,但大同小異,可以參照上面的理解。
看完上述內容,你們對如何使用R語言制作熱力數據地圖有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。