您好,登錄后才能下訂單哦!
本篇內容主要講解“R語言可視化實現地圖填充與散點圖圖層疊加”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“R語言可視化實現地圖填充與散點圖圖層疊加”吧!
今天跟大家分享關于如何在地圖圖層上添加散點圖。
散點圖需要精確的經緯度信息才能在疊加的圖層上進行映射,因此我們選用中國省級輪廓地圖以及各省省會城市的經緯度進行案例演示。
加載包:
library(ggplot2)
library(plyr)
library(maptools)
library(sp)
導入中國省界地圖:
china_map<-readShapePoly("c:/rstudy/bou2_4p.shp")
data1<- china_map@data
data2<- data.frame(id=row.names(data1),data1)
數據格式轉化及業務數據合并:
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")
各省省會城市經緯度數據:
province_city <- read.csv("c:/rstudy/chinaprovincecity.csv")
省級輪廓地圖上添加散點圖圖層:
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()
)
接下來,我們可以給各省的省會城市賦值,將散點圖的大小映射給連續性數值變量,使其變成氣泡圖。
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年度營業狀況分布圖")+
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
)
最后我們來處理標簽問題:
因為這里使用了散點圖(氣泡圖)作為數據展示方式,而作為底圖的地圖圖層僅僅是作為定位信息,沒有包含任何的數據信息,而且頁面整體上沒有太多地方放置省名稱標簽,所以我們有選擇性的顯示前五個數據所代表的省份標簽,以防標簽太多導致頁面雜亂。
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年度營業狀況分布圖")+
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
)
如果甲你想要添加全部的標簽,直接使用province_city中的city標簽即可:
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年度營業狀況分布圖")+
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語言可視化實現地圖填充與散點圖圖層疊加”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。