最近做數(shù)據(jù)分析時,入坑了R語言轻专,畫了一些感覺很有趣的交互圖忆矛,現(xiàn)在把它分享出來,方便大家參考,畢竟獨樂樂不如眾樂樂催训。在此做個記錄洽议,也方便日后自己查找!
1.云圖-----顯示的是我本地數(shù)據(jù)庫所有新聞共同提到的熱點詞匯
(注:需要數(shù)據(jù)分析與挖掘的部分知識漫拭,可以參考我之前寫的文章)
R代碼部分:
library(wordcloud2)
library(stringr)
library(plyr)
f<-readLines('D:/phpspider-master/OperationMySQL/worldcloud3/worldcloud.txt',encoding = "UTF-8")
words<-c(NULL)
for(i in 1:length(f))
{
words[i]<-f[i]
}
words<-gsub("[0-9a-zA-Z]+?","",words)
words<-str_trim(words)
tableWord<-count(words)
tableWord = tableWord[c(16:4000),]
letterCloud(tableWord,word="LCB",size = 10)
2.餅圖----展示的是各大城市職位的組成
代碼部分:
library(RODBC)
par(mfrow=c(2,3))
myconn=odbcConnect("MySQLODBC","root","")
works<-sqlQuery(myconn,"select catalog, count(recruitNumber) as recruits from newsanalysis_tencent where workLocation='北京' group by catalog order by recruits")
city<-works['catalog']
recruits<-works['recruits']
recruits<-as.matrix(recruits)
recruits<-as.numeric(recruits)
city<-works['catalog']
city<-as.character(unlist(city['catalog']))#將數(shù)據(jù)框類型轉(zhuǎn)換為字符型
pct<-round(recruits/sum(recruits)*100)
lbls2<-paste(city," ",pct,"%",sep="")
pie(recruits,labels=lbls2,col=rainbow(length(lbls2)),radius=1,main = "北京")
works<-sqlQuery(myconn,"select catalog, count(recruitNumber) as recruits from newsanalysis_tencent where workLocation='深圳' group by catalog order by recruits asc")
city<-works['catalog']
recruits<-works['recruits']
recruits<-as.matrix(recruits)
recruits<-as.numeric(recruits)
city<-works['catalog']
city<-as.character(unlist(city['catalog']))#將數(shù)據(jù)框類型轉(zhuǎn)換為字符型
pct<-round(recruits/sum(recruits)*100)
lbls2<-paste(city," ",pct,"%",sep="")
pie(recruits,labels=lbls2,col=rainbow(length(lbls2)),radius=1,main = "深圳")
works<-sqlQuery(myconn,"select catalog, count(recruitNumber) as recruits from newsanalysis_tencent where workLocation='上海' group by catalog order by recruits asc")
city<-works['catalog']
recruits<-works['recruits']
recruits<-as.matrix(recruits)
recruits<-as.numeric(recruits)
city<-works['catalog']
city<-as.character(unlist(city['catalog']))#將數(shù)據(jù)框類型轉(zhuǎn)換為字符型
pct<-round(recruits/sum(recruits)*100)
lbls2<-paste(city," ",pct,"%",sep="")
pie(recruits,labels=lbls2,col=rainbow(length(lbls2)),radius=1,main = "上海")
works<-sqlQuery(myconn,"select catalog, count(recruitNumber) as recruits from newsanalysis_tencent where workLocation='成都' group by catalog order by recruits asc")
city<-works['catalog']
recruits<-works['recruits']
recruits<-as.matrix(recruits)
recruits<-as.numeric(recruits)
city<-works['catalog']
city<-as.character(unlist(city['catalog']))#將數(shù)據(jù)框類型轉(zhuǎn)換為字符型
pct<-round(recruits/sum(recruits)*100)
lbls2<-paste(city," ",pct,"%",sep="")
pie(recruits,labels=lbls2,col=rainbow(length(lbls2)),radius=1,main = "成都")
works<-sqlQuery(myconn,"select catalog, count(recruitNumber) as recruits from newsanalysis_tencent where workLocation='廣州' group by catalog order by recruits asc")
city<-works['catalog']
recruits<-works['recruits']
recruits<-as.matrix(recruits)
recruits<-as.numeric(recruits)
city<-works['catalog']
city<-as.character(unlist(city['catalog']))#將數(shù)據(jù)框類型轉(zhuǎn)換為字符型
pct<-round(recruits/sum(recruits)*100)
lbls2<-paste(city," ",pct,"%",sep="")
pie(recruits,labels=lbls2,col=rainbow(length(lbls2)),radius=1,main = "廣州")
works<-sqlQuery(myconn,"select catalog, count(recruitNumber) as recruits from newsanalysis_tencent where workLocation='杭州' group by catalog order by recruits asc")
odbcClose(myconn)
city<-works['catalog']
recruits<-works['recruits']
recruits<-as.matrix(recruits)
recruits<-as.numeric(recruits)
city<-works['catalog']
city<-as.character(unlist(city['catalog']))#將數(shù)據(jù)框類型轉(zhuǎn)換為字符型
pct<-round(recruits/sum(recruits)*100)
lbls2<-paste(city," ",pct,"%",sep="")
pie(recruits,labels=lbls2,col=rainbow(length(lbls2)),radius=1,main = "杭州")
3.條形圖----展示的是每個城市的所有招聘職位數(shù)
代碼部分:
library(RODBC)
library(ggplot2)
library(plotly)
library(dplyr)
myconn=odbcConnect("MySQLODBC","root","")
city<-sqlQuery(myconn,"select distinct workLocation from newsanalysis_tencent order by workLocation")
count<-sqlQuery(myconn,"select count(recruitNumber) as count from newsanalysis_tencent group by workLocation order by workLocation")
city<-cbind(city,count)
city$workLocation <- reorder(city$workLocation,city$count,function(x){-mean(x)})
city <- arrange(city,desc(count))
#取前10名
City<-city$workLocation[1:10]
Works<-city$count[1:10]
p <- ggplot(data=city[1:10,],aes(City,Works)) + geom_bar(fill='red',stat = "identity") + labs(x="城市",y="職位數(shù)",title="各地方崗位數(shù)量")
p<-ggplotly(p,width = 672,height = 480)
p
4.分布地圖----展示的IT類職位在地圖各大版塊的分布
代碼部分:
library(RODBC)
library(leaflet)
myconn=odbcConnect("MySQLODBC","root","")
city1<-sqlQuery(myconn,"select * from cities")
city2<-sqlQuery(myconn,"select * from newsanalysis_tencent where catalog='技術類' ")
city3<-sqlQuery(myconn,"select workLocation,count(recruitNumber) as sum from newsanalysis_tencent where catalog='技術類'group by workLocation")
odbcClose(myconn)
city4<-merge(city1,city2,by="workLocation")
city5<-merge(city3,city4,by="workLocation")
m <- leaflet()
?m <- addTiles(m)?
addMarkers(m,city5$lon,lat=city5$lat,popup=paste('',"",city5$name,"",'',city5$catalog,":",city5$sum))
好了就分享這些了亚兄。