您好,登錄后才能下訂單哦!
這篇文章主要介紹“R語言可視化實現地圖與氣泡圖的繪制”,在日常操作中,相信很多人在R語言可視化實現地圖與氣泡圖的繪制問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”R語言可視化實現地圖與氣泡圖的繪制”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
今天跟大家分享如何在地圖上進行散點圖、氣泡圖繪制。
昨天跟大家介紹了ggplot函數進行地圖繪制的原理,通過輪廓點和分組來定義每一個地區(國家邊界),通過多邊形填充來完成區域填色。
ggplot的圖層疊加原理暈允許我們在坐標系統的疊加多個圖層;
所以在地圖上疊加散點、甚至氣泡可以很容易的實現:
包的導入:
library(maptools)
library(ggplot2)
library(plyr)
導入地理信息數據:
china_map <- readShapePoly("c:/rstudy/bou2_4p.shp") # 讀取地圖信息數據
china_map1 <- fortify(china_map) #轉化為數據框
業務數據導入及作圖數據合并:
mydata <- read.csv("c:/rstudy/geshengzhibiao.csv") #讀取業務數據
province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") #讀取省會城市坐標
china_data <- join(province_city, mydata, type="full") #合并兩個數據框
地圖語句:
ggplot()+
geom_polygon(data=china_map1, aes(x=long, y=lat, group=group), fill="grey95", colour="grey60")+
geom_point(data=china_data, aes(x = jd,y = wd, size=zhibiao, fill=zhibiao2, alpha=0.3), shape=21, colour="black")+
scale_size_area(max_size=8)+
scale_fill_gradient2(low="DarkCyan", mid="Azure", high="Sienna", midpoint=median(na.omit
(china_data$zhibiao2)))+
coord_map("polyconic") +ggtitle("Heat&Bubble plot")+
theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.position = "none"
)
以上語法中,使用了geom_polygon()多邊形函數來定義并填充地圖背景 (注意里面的fill參數(指定地圖區域顏色),colour參數指定多邊形(也就是地區輪廓線)邊框顏色),然后通過geom_point()函數添加散點圖圖層。
圖層中指定數據源為合并后的業務數據,散點面積(大小)用zhibiao1來映射,氣泡圖顏色用zhibiao2來映射(本來散點是只有點顏色(使用colour控制,沒有填充色的,可是當給散點指定其形狀后,散點就有了面積屬性可以使用fill進行顏色填充),氣泡的輪廓線用colour來指定)。
之后的scale_size_area()和scale_fill_gradient2()是對前面geom_point內的fill與size兩個標度進行的深度調整,scale_size_area()告訴軟件散點大小與面積要嚴格的與指標1具體數值大小成比例,并規定面積最大為25。
scale_fill_gradient2()定義了一個三色漸變,low、mid、high分別由一個顏色代碼控制,同時均值顏色要映射給指標2的平均數。
最后的ggtitle定義主題,theme內的參數清除掉所有圖層上的無關元素(背景、網格系統、橫縱軸標簽、刻度線、軸標題、圖例)
到此,關于“R語言可視化實現地圖與氣泡圖的繪制”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。