使用R語言繪制各種好玩的交互圖

最近做數據分析時,入坑了R語言,畫了一些感覺很有趣的交互圖,現在把它分享出來,方便大家參考,畢竟獨樂樂不如眾樂樂。在此做個記錄,也方便日后自己查找!

1.云圖-----顯示的是我本地數據庫所有新聞共同提到的熱點詞匯

(注:需要數據分析與挖掘的部分知識,可以參考我之前寫的文章)


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']))#將數據框類型轉換為字符型

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']))#將數據框類型轉換為字符型

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']))#將數據框類型轉換為字符型

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']))#將數據框類型轉換為字符型

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']))#將數據框類型轉換為字符型

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']))#將數據框類型轉換為字符型

pct<-round(recruits/sum(recruits)*100)

lbls2<-paste(city," ",pct,"%",sep="")

pie(recruits,labels=lbls2,col=rainbow(length(lbls2)),radius=1,main = "杭州")


3.條形圖----展示的是每個城市的所有招聘職位數


代碼部分:

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="職位數",title="各地方崗位數量")

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))


好了就分享這些了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容