您好,登錄后才能下訂單哦!
本篇內容介紹了“R語言可視化實現多邊形與數據地圖填充”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
ggplot函數中有一類特殊的圖表類型叫做多邊形,很難用傳統的視角來定義它屬于哪一類圖表,因為它能夠呈現信息多種多樣。
特別是在做某些比較高階的圖表——地圖時,這種多邊形函數便能夠大顯神通。
之前本公眾號所推送的所有涉及地圖圖表繪制所使用的技巧,幾乎全部都依賴多邊形函數的支持。
library(ggplot2)
library(plyr)
library("maptools")
這里以之前推送過的全球地圖為例:
導入地圖地理信息數據:
world_map <-readShapePoly("c:/rstudy/wold_map/World_region.shp")
使用路徑圖進行區域輪廓描邊:
ggplot(world_map,aes(x=long,y=lat,group=group)) +
geom_path()
更改路徑線為白色,清除掉背景和網格線以及坐標軸:
ggplot(world_map,aes(x=long,y=lat,group=group)) +
geom_path(colour="steelblue")+ theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
使用多邊形進行描邊并填充:(在多邊形中是可以進行線條與形狀分別填色的)
ggplot(world_map,aes(x=long,y=lat,group=group)) +geom_polygon(fill="white",colour="grey") + theme( panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
這就是我們之前所制作的填色地圖的主體代碼語句,數據集是從shp文件導入,可以看出,其實只需要三列字段信息,就可以畫出一幅地圖來:經緯度(二維坐標信息,也可以看作是一組代表X、Y軸的散點),另外的一列變量group其實是一個分類變量,將同一個單位區域輪廓(一個國家或者地區、島嶼等)用一組相同的編號表示。
如果再加上一列連續數值變量,可以將其指定為fill漸變填充的參考指標,那么最終完成的圖表就是一幅按照不同地區指標大小對應漸變填色地圖。
其實這種不帶任何實質數據信息的地圖,很多R包中都有提供:(這里以maps包為例)
library(maps)
states<-map_data("state")
ggplot(states,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
map包是一個專門用來做地圖的加載包,里面存有幾個可以用的地圖數據包:
states<-map_data("world") #全球地圖
ggplot(world,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
france<-map_data("france") #法國地圖
ggplot(france,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
county<-map_data("county") #美國郡級
ggplot(county,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
地圖投影方式:
france<-map_data("france") #法國地圖
ggplot(france,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+coord_map("polyconic")+theme(
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
county<-map_data("county") #美國郡級
ggplot(county,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+coord_map("polyconic")+theme(
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
地圖圖表作為ggplot函數中一大類比較高階的圖表,可以做出很多讓人眼花繚亂、令人尖叫的作品來,感興趣的小伙伴兒趕快學起來。
“R語言可視化實現多邊形與數據地圖填充”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。