溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案

發(fā)布時間:2021-12-06 09:44:16 來源:億速云 閱讀:227 作者:柒染 欄目:大數(shù)據(jù)

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

今天跟大家分享三個數(shù)據(jù)地圖的遺留問題,包括以前因為技術手段限制無法解決的問題,以及讀者吐槽最多的問題。

關于如何在一個版面上呈現(xiàn)不同行政級別的地理信息的解決方案,其實很簡單,就是通過兩個不同行政級別的圖層進行疊加來達到目的。

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)

#底層的區(qū)域地圖:

ggplot(mymapdata)+

geom_polygon(aes(x=long,y=lat,group=group),fill="grey95",col="black")+

coord_map("polyconic") +

theme_map() 

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案

#表層的中國省級行政區(qū)劃地圖:

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() 

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案

#將兩個圖層對象放在同一個圖形對象中(注意先后順序)。

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() 

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案

第二個問題,關于minimini導航窗口。

其實這個問題多少跟第一個問題有些關聯(lián),也是旨在給我們要呈現(xiàn)的中心地圖一個區(qū)域定位的作用。解決方案依然是拼圖,不過這次是拼的圖表(整個圖表對象),而非圖表中的圖層。

#位于中間的中國行政區(qū)劃地圖:

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

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案

#拼貼合并:

vie<-viewport(width=0.30,height=0.25,x=0.25,y=0.25)

p1;print(p2,vp=vie)

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案

第三個問題;也是被吐槽最多的九段線問題,這個問題,其實嚴格來說,我也沒有辦法搞定。

一般的九段線標識方法有兩種,一種是在實際位置框定九段線范圍,另一種則是將九段線的實際范圍單獨移至版面的邊緣位置。第一種方法需要精確的九段線經(jīng)緯點數(shù)據(jù),獲取不易,第二種則九段線位置過于靈活,然后不好掌握數(shù)據(jù)。

如果你能獲取帶有九段線數(shù)據(jù)的地圖素材,那么這是最佳的解決方案,倘若不行,我們就要對圖表后期進行處理(大部分人想到的方法是使用PS等軟件,當然 這也是一種解決方案,至少清晰度上可以保證)。

但是既然是在R里面寫代碼,突然跑去玩PS總感覺怪怪的,能用代碼解決的問題就不算問題,沒錯拼圖嘛,R依然搞的定。

首先你要有個九段線素材圖片。

jiuduanxian<-"E:/數(shù)據(jù)可視化/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()

大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案

我找的這個九段線素材可能跟中國地圖風格搭配的不是很好,當然各位使用的時候可以自己去找相對準確、美觀的素材使用。

最后提醒大家,關于九段線問題,一定要在報告或者文章末尾進行免責聲明,涉及到領土爭端問題,不僅僅要意識到,而且要盡可能的做好應對措施,避免不必要的麻煩。

看完上述內容,你們掌握大數(shù)據(jù)中數(shù)據(jù)地圖的幾個遺留問題的解決方案的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI