您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“R語(yǔ)言可視化實(shí)現(xiàn)數(shù)據(jù)地圖離散百分比填充”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
今天跟大家分享如何以百分比形式填充離散分段數(shù)據(jù)地圖。
案例用環(huán)渤海三省二市的地理數(shù)據(jù)。
library(ggplot2)
library(maptools)
library(plyr)
數(shù)據(jù)導(dǎo)入、轉(zhuǎn)換、抽取
CHN_adm2 <- readShapePoly("c:/rstudy/CHN_adm/CHN_adm2.shp")
CHN_adm2_1 <- fortify(CHN_adm2)
data1 <- CHN_adm2@data
data2 <- data.frame(id=row.names(data1),data1)
china_map_data <- join(CHN_adm2_1, data2, type = "full")
huanbohai <-subset(china_map_data,NAME_1==c("Beijing","Tianjin","Nei Mongol","Hebei","Shandong"))
建立業(yè)務(wù)數(shù)據(jù):
huanbohai_perm<-data.frame(NAME_2=unique(huanbohai$NAME_2),zhibiao=rnorm(42,100,50))
huanbohai_perm$zhibiao<-round(huanbohai_perm$zhibiao,0)
write.table (huanbohai_perm, file ="C:/rstudy/huanbohai.csv", sep =",", row.names =FALSE)
業(yè)務(wù)數(shù)據(jù)導(dǎo)入及合并:
mydata<-read.csv("C:/rstudy/huanbohai.csv",header=T)
huanbohai_map_data <- join(huanbohai,mydata, type="full")
###將轉(zhuǎn)換的分段因子變量重新命名為我們需要的分段閥值:
huanbohai_map_data$fau <- cut(huanbohai_map_data$zhibiao, breaks = c(0,40,80,120,160,200))
huanbohai_map_data$fam<-factor(huanbohai_map_data$fau,levels=c('(0,40]','(40,80]','(80,120]','(120,160]','(160,200]'),labels=c('0~40','40~80','80~120','120~160','160~200'),order=TRUE)
離散顏色標(biāo)度填充(實(shí)際值分段)
windowsFonts(myFont = windowsFont("微軟雅黑"))
ggplot(huanbohai_map_data, aes(x = long, y = lat, group = group,fill =fam)) +
geom_polygon(colour="white")+
scale_fill_brewer(palette="Greens") + ###Blues&Greens
coord_map("polyconic") +
ggtitle("某公司2015~2016年度營(yíng)業(yè)狀況分布圖")+
guides(fill=guide_legend(reverse=TRUE,title=NULL))+
theme(
title=element_text(family="myFont"),
legend.text.align=1, ###圖例標(biāo)簽右對(duì)齊
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.position = c(0.08,0.6)
)
以上是昨天在東三省填充地圖中所使用過(guò)的方法,接下來(lái)我解釋一種新的填充方案,通過(guò)將數(shù)量段轉(zhuǎn)換為百分比進(jìn)行離散顏色標(biāo)度填充:
離散顏色標(biāo)度分割(百分比數(shù)量段):
qa <- quantile(na.omit(huanbohai_map_data$zhibiao), c(0,0.2,0.4,0.6,0.8,1.0))
huanbohai_map_data$zhibiao_q<-cut(huanbohai_map_data$zhibiao,qa,labels = c("0-20%", "20-40%","40-60%","60-80%", "80-100%"),include.lowest = TRUE)
> levels(huanbohai_map_data$zhibiao_q)
[1] "0-20%" "20-40%" "40-60%" "60-80%" "80-100%"
通過(guò)將指標(biāo)變量以分段百分比的方式進(jìn)行分割,新建立一個(gè)百分比分段因子變量:
離散漸變(百分比)
windowsFonts(myFont = windowsFont("微軟雅黑"))
ggplot(huanbohai_map_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=zhibiao_q),colour="white")+
scale_fill_brewer(palette="Greens")+
coord_map("polyconic") +
guides(fill=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.2,0.7),
legend.text.align=1
)
###帶標(biāo)簽
接下來(lái)處理標(biāo)簽問(wèn)題:
創(chuàng)建各城市中心地理坐標(biāo):
midpos <- function(data1) mean(range(data1,na.rm=TRUE))
centres <- ddply(huanbohai_map_data,.(city),colwise(midpos,.(long,lat)))
填充并添加標(biāo)簽:
ggplot(huanbohai_map_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=zhibiao_q),colour="white")+
scale_fill_brewer(palette="Greens")+
coord_map("polyconic") +
geom_text(aes(label=city),size =3,family="myFont",fontface="plain",data=centres) +
guides(fill=guide_legend(reverse=TRUE,title=NULL))+
ggtitle("某公司2015~2016年度營(yíng)業(yè)狀況分布圖")+
theme(
title=element_text(family="myFont"),
title=element_text(family="myFont"),
panel.grid = element_blank(),
panel.background = element_blank(),
legend.text.align=1,
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.position = c(0.2,0.7)
)
“R語(yǔ)言可視化實(shí)現(xiàn)數(shù)據(jù)地圖離散百分比填充”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(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)容。