溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加

發(fā)布時(shí)間:2021-07-23 09:02:28 來(lái)源:億速云 閱讀:242 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加”吧!

今天跟大家分享關(guān)于如何在地圖圖層上添加散點(diǎn)圖。

散點(diǎn)圖需要精確的經(jīng)緯度信息才能在疊加的圖層上進(jìn)行映射,因此我們選用中國(guó)省級(jí)輪廓地圖以及各省省會(huì)城市的經(jīng)緯度進(jìn)行案例演示。

加載包:

library(ggplot2)

library(plyr)

library(maptools)

library(sp)

導(dǎo)入中國(guó)省界地圖:

china_map<-readShapePoly("c:/rstudy/bou2_4p.shp")

data1<- china_map@data      

data2<- data.frame(id=row.names(data1),data1) 

數(shù)據(jù)格式轉(zhuǎn)化及業(yè)務(wù)數(shù)據(jù)合并:

china_map1 <- fortify(china_map) 

china_map_data <- join(china_map1,data2, type = "full") 

mydata <- read.csv("c:/rstudy/geshengzhibiao.csv")

china_data <- join(china_map_data, mydata, type="full")

各省省會(huì)城市經(jīng)緯度數(shù)據(jù):

province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") 

省級(jí)輪廓地圖上添加散點(diǎn)圖圖層:

ggplot(china_data,aes(long,lat))+

     geom_polygon(aes(group=group),fill="white",colour="grey60")+

     geom_point(data=province_city,aes(x=jd,y=wd),colour="red")+

     coord_map("polyconic") + 

     theme(

          panel.grid = element_blank(),

          panel.background = element_blank(),

          axis.text = element_blank(),

          axis.ticks = element_blank(),

          axis.title = element_blank()

          )

R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加

接下來(lái),我們可以給各省的省會(huì)城市賦值,將散點(diǎn)圖的大小映射給連續(xù)性數(shù)值變量,使其變成氣泡圖。

province_city$zhibiao<-NULL

province_city$zhibiao<-rnorm(34,100,50)

windowsFonts(myFont = windowsFont("微軟雅黑"))

ggplot()+

     geom_polygon(data=china_data,aes(x=long,y=lat,group=group),fill="grey95",colour="grey80")+

     geom_point(data=province_city,aes(x=jd,y=wd,size=zhibiao),shape=21,fill="#8E0F2E",colour="black",alpha=0.4)+

     scale_size_area(max_size=8)+

     coord_map("polyconic") + 

     guides(size=guide_legend(reverse=TRUE,title=NULL))+ 

     ggtitle("某公司2015~2016年度營(yíng)業(yè)狀況分布圖")+

     theme(

          title=element_text(family="myFont"),

          panel.grid = element_blank(),

          panel.background = element_blank(),

          axis.text = element_blank(),

          axis.ticks = element_blank(),

          axis.title = element_blank(),

          legend.position =c(0.15,0.4),

          legend.background=element_rect(colour="white",fill="white"),

          legend.text.align=1

          )

R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加

最后我們來(lái)處理標(biāo)簽問(wèn)題:

因?yàn)檫@里使用了散點(diǎn)圖(氣泡圖)作為數(shù)據(jù)展示方式,而作為底圖的地圖圖層僅僅是作為定位信息,沒有包含任何的數(shù)據(jù)信息,而且頁(yè)面整體上沒有太多地方放置省名稱標(biāo)簽,所以我們有選擇性的顯示前五個(gè)數(shù)據(jù)所代表的省份標(biāo)簽,以防標(biāo)簽太多導(dǎo)致頁(yè)面雜亂。

labelper<-province_city[order(province_city[,5],decreasing=T),][1:10,]

ggplot()+

     geom_polygon(data=china_data,aes(x=long,y=lat,group=group),fill="grey95",colour="grey80")+

     geom_point(data=province_city,aes(x=jd,y=wd,size=zhibiao),shape=21,fill="#8E0F2E",colour="black",alpha=0.4)+

     scale_size_area(max_size=8)+

     coord_map("polyconic") + 

     geom_text(aes(x=jd+2.3,y=wd,label=city),size =3,family="myFont",fontface="plain",data=labelper) +

     guides(size=guide_legend(reverse=TRUE,title=NULL))+ 

     ggtitle("某公司2015~2016年度營(yíng)業(yè)狀況分布圖")+

     theme(

          title=element_text(family="myFont"),

          panel.grid = element_blank(),

          panel.background = element_blank(),

          axis.text = element_blank(),

          axis.ticks = element_blank(),

          axis.title = element_blank(),

          legend.position =c(0.15,0.4),

          legend.background=element_rect(colour="white",fill="white"),

          legend.text.align=1

          )

R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加

如果甲你想要添加全部的標(biāo)簽,直接使用province_city中的city標(biāo)簽即可:

ggplot()+

     geom_polygon(data=china_data,aes(x=long,y=lat,group=group),fill="grey95",colour="grey80")+

     geom_point(data=province_city,aes(x=jd,y=wd,size=zhibiao),shape=21,fill="#8E0F2E",colour="black",alpha=0.4)+

     scale_size_area(max_size=8)+

     coord_map("polyconic") + 

     geom_text(aes(x=jd+2.3,y=wd,label=city),size =3,family="myFont",fontface="plain",data=province_city) +

     guides(size=guide_legend(reverse=TRUE,title=NULL))+ 

     ggtitle("某公司2015~2016年度營(yíng)業(yè)狀況分布圖")+

     theme(

          title=element_text(family="myFont"),

          panel.grid = element_blank(),

          panel.background = element_blank(),

          axis.text = element_blank(),

          axis.ticks = element_blank(),

          axis.title = element_blank(),

          legend.position =c(0.15,0.4),

          legend.background=element_rect(colour="white",fill="white"),

          legend.text.align=1

          )

R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加

到此,相信大家對(duì)“R語(yǔ)言可視化實(shí)現(xiàn)地圖填充與散點(diǎn)圖圖層疊加”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

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

AI