您好,登錄后才能下訂單哦!
大數據中數據地圖的幾個遺留問題的解決方案,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
今天跟大家分享三個數據地圖的遺留問題,包括以前因為技術手段限制無法解決的問題,以及讀者吐槽最多的問題。
關于如何在一個版面上呈現不同行政級別的地理信息的解決方案,其實很簡單,就是通過兩個不同行政級別的圖層進行疊加來達到目的。
library(maps)
library("ggplot2")
library("ggthemes")
library("dplyr")
library("maptools")
library("grid")
library("ggimage")
world_map<-map_data("world")
data<-read.csv("D:/R/mapdata/Word_State.csv",stringsAsFactors = FALSE,check.names = FALSE)
data1<-filter(data,region=="Russia" | Address=="Asia")
mymapdata<-merge(world_map[,1:5],data1,type="right")%>%filter(long>=30 & lat>=10)%>%arrange(group,order)
#底層的區域地圖:
ggplot(mymapdata)+
geom_polygon(aes(x=long,y=lat,group=group),fill="grey95",col="black")+
coord_map("polyconic") +
theme_map()
#表層的中國省級行政區劃地圖:
china_map <- readShapePoly("D:/R/rstudy/CHN_adm/bou2_4p.shp")
china_map1 <- fortify(china_map)
ggplot(china_map1)+
geom_polygon(aes(x=long,y=lat,group=group),fill="white",col="black")+
coord_map("polyconic") +
theme_map()
#將兩個圖層對象放在同一個圖形對象中(注意先后順序)。
ggplot()+
geom_polygon(data=mymapdata,aes(x=long,y=lat,group=group),fill="grey95",col="grey")+
geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),fill="white",col="black")+
coord_map("polyconic") +
theme_map()
第二個問題,關于minimini導航窗口。
其實這個問題多少跟第一個問題有些關聯,也是旨在給我們要呈現的中心地圖一個區域定位的作用。解決方案依然是拼圖,不過這次是拼的圖表(整個圖表對象),而非圖表中的圖層。
#位于中間的中國行政區劃地圖:
p1<-ggplot()+
geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),fill="white",col="grey")+
coord_map("polyconic") +
theme_map();p1
p2<-ggplot()+
geom_polygon(data=world_map,aes(x=long,y=lat,group=group),fill="grey95",col="grey")+
annotate(geom="rect",xmin =30, xmax =155,ymin =10L, ymax = 55,colour="grey",fill="orange",alpha=.3)+
theme_map() %+replace% theme(plot.background=element_rect(colour="black"));p2
#拼貼合并:
vie<-viewport(width=0.30,height=0.25,x=0.25,y=0.25)
p1;print(p2,vp=vie)
第三個問題;也是被吐槽最多的九段線問題,這個問題,其實嚴格來說,我也沒有辦法搞定。
一般的九段線標識方法有兩種,一種是在實際位置框定九段線范圍,另一種則是將九段線的實際范圍單獨移至版面的邊緣位置。第一種方法需要精確的九段線經緯點數據,獲取不易,第二種則九段線位置過于靈活,然后不好掌握數據。
如果你能獲取帶有九段線數據的地圖素材,那么這是最佳的解決方案,倘若不行,我們就要對圖表后期進行處理(大部分人想到的方法是使用PS等軟件,當然 這也是一種解決方案,至少清晰度上可以保證)。
但是既然是在R里面寫代碼,突然跑去玩PS總感覺怪怪的,能用代碼解決的問題就不算問題,沒錯拼圖嘛,R依然搞的定。
首先你要有個九段線素材圖片。
jiuduanxian<-"E:/數據可視化/R/R語言學習筆記/可視化/timg.jpg"
ggplot()+
geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),fill="white",col="grey")+
geom_image(aes(image=jiuduanxian,x=130,y=20),size=.2)+
coord_map("polyconic") +
theme_map()
我找的這個九段線素材可能跟中國地圖風格搭配的不是很好,當然各位使用的時候可以自己去找相對準確、美觀的素材使用。
最后提醒大家,關于九段線問題,一定要在報告或者文章末尾進行免責聲明,涉及到領土爭端問題,不僅僅要意識到,而且要盡可能的做好應對措施,避免不必要的麻煩。
看完上述內容,你們掌握大數據中數據地圖的幾個遺留問題的解決方案的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。