經管類核心期刊地域分布數據可視化

最近在看文獻,看的有些煩躁了,想找點兒熟練練練手,剛好看到百度百科有關於經管類核心期刊的數據表,順手就抓過來練習練習。

本來百度百度中核心期刊欄目的列表裡,關於經濟學72中核心期刊的詳細地址不全,我申請了編輯字條,編完一直在審核,想想算了,根據百度百科的審核流程和效率,估計不知道要申到猴年馬月了,自己搜了確實的地址信息。

以下數數據的爬取、清洗和可視化過程:

library(rvest)library(stringr)library(dplyr)library(ggplot2)library(plyr)library(rjson)library(Cairo)library(Cairo)library(showtext)library(maptools)

表格爬取(這裡用revst來爬,效率特別高)

url<-"http://baike.baidu.com/link?url=VRCRtZ-GR4Lv483tBm2d6IQ3mOjTlcc1z80EBBzFwCGAlDT16NvxH_yqshJdSD95_AEEu_Hzg4uE3ok3bDIohkkl9sTwpE9cVJcRP7RpAmVBIeEmwZ4gdXNetbA8lvmU"info<-read_html(url,encoding="UTF-8")%>%html_nodes("table")%>%html_table(header=TRUE,fill=TRUE)

表格的提取過程:

economic<-info[[1]][,-1];names(economic)<-c("Name","Address");economic$Class<-"C"mangement<-info[[2]][,-1];names(mangement)<-c("Name","Address");mangement$Class<-"M"

打開數據編輯器,自己把缺失的地址補全

fix(economic)

剔除掉地址中的哪些郵箱類信息(可能會干擾經緯度抓取的準確性)

myfulldata<-rbind(economic,mangement)myfulldata$Address<-sub("\(\d.+\)","",myfulldata$Address)myfulldata$Address<-sub("\(\d.+\)","",myfulldata$Address)myfulldata$Address<-sub("\d.+\信箱","",myfulldata$Address)

使用過百度地圖的API匹配經緯度(各位小夥伴兒高抬貴手,自己去申請個API把,不要老拿我的API玩耍,這個有限額,用完了就不能用了)

baidu_lng <- c()baidu_lat <- c()ak<-"X8zlxPUdSe2weshrZ1WqnWxb43cfBI2N"address<-myfulldata$Addressfor(location in address){url<-paste("http://api.map.baidu.com/geocoder/v2/?ak=",ak,"&callback=renderOption&output=json&address=",location,sep="")url_string <- URLencode(url) json<- readLines(url_string, warn=F) geo <- fromJSON(substr(json,regexpr("\(",json)+1,nchar(json)-1)) lng<-geo$result$location$lnglat<-geo$result$location$lat baidu_lng<-c(baidu_lng,lng) baidu_lat<-c(baidu_lat,lat)}result<-data.frame(address=address,longitude=baidu_lng,latitude=baidu_lat,stringsAsFactors=FALSE)

合併經緯度數據:

mynewfulldata<-merge(myfulldata,result,by.x="Address",by.y="address",all.x=T)mynewfulldata<-unique(mynewfulldata)mynewfulldata<-mynewfulldata[,c(2,1,4,5,3)];names(mynewfulldata)[3:4]<-c("lon","lat")

中國地圖素材導入:

china_map <- readShapePoly("D:/R/rstudy/CHN_adm/bou2_4p.shp") china_map1 <- fortify(china_map)

接下來我們通過幾張圖表來展示社科經管類核心期刊的地域分布、城市分布情況。

經管類總體數量分布:

所有核心期刊的城市分布情況

CairoPNG(file="hexinqikanall.png",width_=800,height=600)font.add("myfont","msyh.ttc")showtext.begin()ggplot(cityvalue,aes(reorder(x,freq),freq))+geom_bar(fill="#0C8DC4",stat="identity")+coord_flip()+labs(title="經管類核心期刊數量城市分布",caption="數據來源:百度百科")+geom_text(aes(label=freq),hjust=1.2,colour="white",size=8)+theme_bw()+theme( panel.border=element_blank(), panel.grid.major=element_line(linetype="dashed"), panel.grid.minor=element_blank(), plot.title=element_text(size=15,colour="#003087",family="myfont"), plot.caption=element_text(hjust=0,size=10), axis.title=element_blank(), axis.text=element_text(size=15) )showtext.end()dev.off()

經濟學核心期刊城市分布:

CairoPNG(file="jingjixue1.png",width_=900,height=620)font.add("myfont","msyh.ttc")showtext.begin()ggplot(cityvalue,aes(reorder(x,freq),freq))+geom_bar(fill="#0C8DC4",stat="identity")+coord_flip()+labs(title="經濟學核心期刊城市分布",caption="數據來源:百度百科")+geom_text(aes(label=freq),hjust=1,colour="white",size=7)+theme_bw()+theme( panel.border=element_blank(), panel.grid.major=element_line(linetype="dashed"), panel.grid.minor=element_blank(), plot.title=element_text(size=15,colour="#003087",family="myfont"), plot.caption=element_text(hjust=0,size=10), axis.title=element_blank(), axis.text=element_text(size=15) )showtext.end()dev.off()

管理學核心期刊城市分布:

diyufenbujinggl<-myfulldata[which(myfulldata$Class=="M"),]$Addressdiyufenbujinggl<-sub("中國","",diyufenbujinggl)part1<-grep("市",diyufenbujinggl,value=T)part1<-sub("(安徽省|四川省)","",part1)order<-gregexpr("市",part1)city<-c()for(j in 1:length(part1)){city<-substring(part1,0,order[[j]][1])}part2<-grep("市",diyufenbujinggl,value=T,invert =T)cityvalue2<-paste0(substring(part2,1,2),"市")cityvalue2<-c(city,cityvalue2)%>%count()%>%arrange(-freq)

CairoPNG(file="jingjixue2.png",width_=800,height=600)font.add("myfont","msyh.ttc")showtext.begin()ggplot(cityvalue2,aes(reorder(x,freq),freq))+geom_bar(fill="#0C8DC4",stat="identity")+coord_flip()+labs(title="管理學核心期刊數量城市分布",caption="數據來源:百度百科")+geom_text(aes(label=freq),hjust=2,colour="white",size=10)+theme_bw()+theme( panel.border=element_blank(), panel.grid.major=element_line(linetype="dashed"), panel.grid.minor=element_blank(), plot.title=element_text(size=15,colour="#003087",family="myfont"), plot.caption=element_text(hjust=0,size=10), axis.title=element_blank(), axis.text=element_text(size=15) )showtext.end()dev.off()

下面我們通過幾張數據地圖來觀察一下這些期刊在地圖空間分布上的趨勢。

首先是經濟學類核心期刊

mynewfulldata1<-filter(mynewfulldata,Class=="C")CairoPNG(file="hexinqikanC.png",width_=1200,height=640)font.add("myfont","msyh.ttc")showtext.begin()ggplot()+ geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),col="grey60",fill="white",size=.2,alpha=.4)+geom_polygon(data=mynewfulldata,aes(x=lon,y=lat,fill = ..level..),stat="density_2d",alpha=.8,color=NA)+geom_point(data=mynewfulldata,aes(x=lon,y=lat),shape=21,size=3,fill="orange",col="white")+ scale_fill_gradient2(low="white",mid="yellow", high = "red")+ coord_map("polyconic")+ guides(fill=FALSE)+ labs(title="經濟學核心期刊地域分布密度圖",caption="數據來源:百度百科")+ theme( title=element_text(family="myfont",size=18), plot.title=element_text(size=24), panel.grid=element_blank(), panel.background=element_blank(), axis.text = element_blank(), axis.ticks = element_blank(), axis.title = element_blank(), plot.caption=element_text(hjust=0) )showtext.end()dev.off()

管理學核心期刊

mynewfulldata2<-filter(mynewfulldata,Class=="M")CairoPNG(file="hexinqikanM.png",width_=1200,height=640)font.add("myfont","msyh.ttc")showtext.begin()ggplot()+ geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),col="grey60",fill="white",size=.2,alpha=.4)+geom_polygon(data=mynewfulldata2,aes(x=lon,y=lat,fill = ..level..),stat="density_2d",alpha=.8,color=NA)+geom_point(data=mynewfulldata2,aes(x=lon,y=lat),shape=21,size=3,fill="#0C8DC4",col="white")+ scale_fill_gradient2(low="white",mid="yellow", high = "red")+ coord_map("polyconic")+ guides(fill=FALSE)+ labs(title="管理學核心期刊地域分布密度圖",caption="數據來源:百度百科")+ theme( title=element_text(family="myfont",size=18), plot.title=element_text(size=24), panel.grid=element_blank(), panel.background=element_blank(), axis.text = element_blank(), axis.ticks = element_blank(), axis.title = element_blank(), plot.caption=element_text(hjust=0) )showtext.end()dev.off()

最後來個經濟學和管理學核心期刊分布對比圖。

CairoPNG(file="jingguanphoto.png",width_=1200,height=640)font.add("myfont", "msyh.ttc")showtext.begin()ggplot()+ geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),col="grey60",fill="white",size=.2,alpha=.4)+geom_point(data=mynewfulldata,aes(x=lon,y=lat),shape=21,size=8,fill="transparent",col="#014D64")+ geom_point(data=mynewfulldata2,aes(x=lon,y=lat),shape=21,size=3,fill="#C72E29",col="transparent",alpha=.6)+ coord_map("polyconic") + labs(title="中國社科類經管核心期刊地域分布圖",caption="數據來源:百度百科")+ annotate("text", x=63.4, y=45, label="○ C: 經濟學", color= "#014D64", size=6.5) + annotate("text", x=65, y=42, label=" ● M: 管理學", color= "#C72E29", size=6) + theme( title=element_text(family="myfont",size=18), plot.title=element_text(size=24), plot.caption=element_text(family="myfont",size=18,hjust=0), panel.grid = element_blank(), panel.background = element_blank(), axis.text = element_blank(), axis.ticks = element_blank(), axis.title = element_blank(), legend.position = c(0.02,0.6), )showtext.end()dev.off()

不知道大家看了以上核心期刊的地域分布滯後,內心作何感想呢,本來想寫幾句短評到的,但是害怕被噴,再者自己是個學渣,這個話題不適合我~—~,有啥感想,都可以寫在底部評論里,讓我看到你們的聲音!

聯繫方式:

wechat:ljty1991

Mail:578708965@qq.com

個人公眾號:數據小魔方(datamofang)

團隊公眾號:EasyCharts

qq交流群:[魔方學院]553270834


推薦閱讀:

那些年倒騰的R語言學習筆記,全都在這裡了~
什麼是專業圖表與商業圖表?
上帝視角——給世界一個特寫~
智聯Python相關職位的數據分析及可視化-Pandas&Matplotlib篇
用R語言高效下載圖片

TAG:R编程语言 | 数据可视化 | 图表 |