您好,登錄后才能下訂單哦!
本篇內(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()
)
接下來(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
)
最后我們來(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
)
如果甲你想要添加全部的標(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
)
到此,相信大家對(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í)!
免責(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)容。